module ObjectMetadata def add_metadata_to_xml_node(el, osm, changeset_cache, user_display_name_cache) el["changeset"] = osm.changeset_id.to_s el["redacted"] = osm.redaction.id.to_s if osm.redacted? el["timestamp"] = osm.timestamp.xmlschema el["version"] = osm.version.to_s el["visible"] = osm.visible.to_s if changeset_cache.key?(osm.changeset_id) # use the cache if available else changeset_cache[osm.changeset_id] = osm.changeset.user_id end user_id = changeset_cache[osm.changeset_id] if user_display_name_cache.key?(user_id) # use the cache if available elsif osm.changeset.user.data_public? user_display_name_cache[user_id] = osm.changeset.user.display_name else user_display_name_cache[user_id] = nil end unless user_display_name_cache[user_id].nil? el["user"] = user_display_name_cache[user_id] el["uid"] = user_id.to_s end end def add_tags_to_xml_node(el, tags) tags.each do |tag| tag_el = XML::Node.new("tag") tag_el["k"] = tag.k tag_el["v"] = tag.v el << tag_el end end end