]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/changeset.rb
Merge remote-tracking branch 'upstream/pull/1827'
[rails.git] / app / models / changeset.rb
index a4daab80113739cccdf62aab1050978d2f8f3a86..502637c2a69b8926fc84a4dac6b2403f152574d4 100644 (file)
@@ -1,3 +1,30 @@
+# == Schema Information
+#
+# Table name: changesets
+#
+#  id          :integer          not null, primary key
+#  user_id     :integer          not null
+#  created_at  :datetime         not null
+#  min_lat     :integer
+#  max_lat     :integer
+#  min_lon     :integer
+#  max_lon     :integer
+#  closed_at   :datetime         not null
+#  num_changes :integer          default(0), not null
+#
+# Indexes
+#
+#  changesets_bbox_idx                (min_lat,max_lat,min_lon,max_lon)
+#  changesets_closed_at_idx           (closed_at)
+#  changesets_created_at_idx          (created_at)
+#  changesets_user_id_created_at_idx  (user_id,created_at)
+#  changesets_user_id_id_idx          (user_id,id)
+#
+# Foreign Keys
+#
+#  changesets_user_id_fkey  (user_id => users.id)
+#
+
 class Changeset < ActiveRecord::Base
   require "xml/libxml"
 
@@ -28,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
 
@@ -100,12 +124,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.
@@ -114,8 +135,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
@@ -211,7 +231,7 @@ 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
 
     if include_discussion
       el2 = XML::Node.new("discussion")