relation.add_tag_keyval(tag['k'], tag['v'])
end
+ # need to initialise the relation members array explicitly, as if this
+ # isn't done for a new relation then @members attribute will be nil,
+ # and the members will be loaded from the database instead of being
+ # empty, as intended.
+ relation.members = Array.new
+
pt.find('member').each do |member|
#member_type =
logger.debug "each member"
end
self.relation_members.each do |member|
- p=0
- if visible_members
- # if there is a list of visible members then use that to weed out deleted segments
- if visible_members[member.member_type][member.member_id]
- p=1
- end
- else
- # otherwise, manually go to the db to check things
- if member.member.visible?
- p=1
- end
- end
- if p
- e = XML::Node.new 'member'
- e['type'] = member.member_type.downcase
- e['ref'] = member.member_id.to_s
- e['role'] = member.member_role
- el1 << e
- end
+ e = XML::Node.new 'member'
+ e['type'] = member.member_type.downcase
+ e['ref'] = member.member_id.to_s
+ e['role'] = member.member_role
+ el1 << e
end
self.relation_tags.each do |tag|
# FIXME is this really needed?
def members
- unless @members
- @members = Array.new
- self.relation_members.each do |member|
- @members += [[member.member_type,member.member_id,member.member_role]]
- end
+ @members ||= self.relation_members.map do |member|
+ [member.member_type, member.member_id, member.member_role]
end
- @members
end
def tags
@tags = t
end
- def add_member(type,id,role)
- @members = Array.new unless @members
- @members += [[type,id.to_i,role]]
+ def add_member(type, id, role)
+ @members ||= []
+ @members << [type, id.to_i, role]
end
def add_tag_keyval(k, v)