support list of ways in relations tests

This commit is contained in:
Emil Tin 2013-01-10 17:05:41 +01:00
parent 54774726b2
commit 2e3947cc6d

View File

@ -90,14 +90,18 @@ Given /^the relations$/ do |table|
relation = OSM::Relation.new make_osm_id, OSM_USER, OSM_TIMESTAMP relation = OSM::Relation.new make_osm_id, OSM_USER, OSM_TIMESTAMP
row.each_pair do |key,value| row.each_pair do |key,value|
if key =~ /^node:(.*)/ if key =~ /^node:(.*)/
raise "***invalid relation node member '#{value}', must be single character" unless value.size == 1 value.split(',').map { |v| v.strip }.each do |node_name|
node = find_node_by_name(value) raise "***invalid relation node member '#{node_name}', must be single character" unless node_name.size == 1
raise "*** unknown relation node member '#{value}'" unless node node = find_node_by_name(node_name)
relation << OSM::Member.new( 'node', node.id, $1 ) raise "*** unknown relation node member '#{node_name}'" unless node
relation << OSM::Member.new( 'node', node.id, $1 )
end
elsif key =~ /^way:(.*)/ elsif key =~ /^way:(.*)/
way = find_way_by_name(value) value.split(',').map { |v| v.strip }.each do |way_name|
raise "*** unknown relation way member '#{value}'" unless way way = find_way_by_name(way_name)
relation << OSM::Member.new( 'way', way.id, $1 ) raise "*** unknown relation way member '#{way_name}'" unless way
relation << OSM::Member.new( 'way', way.id, $1 )
end
elsif key =~ /^(.*):(.*)/ elsif key =~ /^(.*):(.*)/
raise "*** unknown relation member type '#{$1}', must be either 'node' or 'way'" raise "*** unknown relation member type '#{$1}', must be either 'node' or 'way'"
else else