before_save :update_closed_at
- # over-expansion factor to use when updating the bounding box
- EXPAND = 0.1
-
# maximum number of elements allowed in a changeset
MAX_ELEMENTS = 10000
pt.find("tag").each do |tag|
raise OSM::APIBadXMLError.new("changeset", pt, "tag is missing key") if tag["k"].nil?
raise OSM::APIBadXMLError.new("changeset", pt, "tag is missing value") if tag["v"].nil?
+
cs.add_tag_keyval(tag["k"], tag["v"])
end
end
##
- # expand the bounding box to include the given bounding box. also,
- # expand a little bit more in the direction of the expansion, so that
- # further expansions may be unnecessary. this is an optimisation
- # suggested on the wiki page by kleptog.
+ # expand the bounding box to include the given bounding box.
def update_bbox!(bbox_update)
- bbox.expand!(bbox_update, EXPAND)
+ bbox.expand!(bbox_update)
# update active record. rails 2.1's dirty handling should take care of
# whether this object needs saving or not.
##
# the number of elements is also passed in so that we can ensure that
- # a single changeset doesn't contain too many elements. this, of course,
- # destroys the optimisation described in the bbox method above.
+ # a single changeset doesn't contain too many elements.
def add_changes!(elements)
self.num_changes += elements
end
user_display_name_cache = {} if user_display_name_cache.nil?
- if user_display_name_cache && user_display_name_cache.key?(user_id)
+ if user_display_name_cache&.key?(user_id)
# use the cache if available
elsif user.data_public?
user_display_name_cache[user_id] = user.display_name
bbox.to_unscaled.add_bounds_to(el1, "_") if bbox.complete?
- el1["comments_count"] = comments.count.to_s
+ el1["comments_count"] = comments.length.to_s
+ el1["changes_count"] = num_changes.to_s
if include_discussion
el2 = XML::Node.new("discussion")