X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/aa1fb6dbb8c2e71b8ce8c231ae1272a2dfebd75a..908324323e8801ff76a7cde812e61dbbb03a33ce:/app/models/changeset.rb diff --git a/app/models/changeset.rb b/app/models/changeset.rb index 37d26e0a7..5cdfeb994 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -55,9 +55,6 @@ class Changeset < ActiveRecord::Base 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 @@ -109,6 +106,7 @@ class Changeset < ActiveRecord::Base 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 @@ -127,12 +125,9 @@ class Changeset < ActiveRecord::Base 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. @@ -141,8 +136,7 @@ class Changeset < ActiveRecord::Base ## # 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 @@ -214,7 +208,7 @@ class Changeset < ActiveRecord::Base 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 @@ -238,7 +232,8 @@ class Changeset < ActiveRecord::Base 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")