41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
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
|