]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/node.rb
Update bundle
[rails.git] / app / models / node.rb
index 1b81cc823151857cc2925a7ba5ae38e7a99ef83f..20c874931ee2e74cdfa6beefa7a5c6563b76c6e8 100644 (file)
@@ -23,14 +23,21 @@ class Node < ActiveRecord::Base
   has_many :containing_relation_members, :class_name => "RelationMember", :as => :member
   has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation
 
   has_many :containing_relation_members, :class_name => "RelationMember", :as => :member
   has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation
 
-  validates_presence_of :id, :on => :update
-  validates_presence_of :timestamp, :version,  :changeset_id
-  validates_uniqueness_of :id
-  validates_inclusion_of :visible, :in => [true, false]
-  validates_numericality_of :latitude, :longitude, :changeset_id, :version, :integer_only => true
-  validates_numericality_of :id, :on => :update, :integer_only => true
+  validates :id, :uniqueness => true, :presence => { :on => :update },
+                 :numericality => { :on => :update, :integer_only => true }
+  validates :version, :presence => true,
+                      :numericality => { :integer_only => true }
+  validates :changeset_id, :presence => true,
+                           :numericality => { :integer_only => true }
+  validates :latitude, :presence => true,
+                       :numericality => { :integer_only => true }
+  validates :longitude, :presence => true,
+                        :numericality => { :integer_only => true }
+  validates :timestamp, :presence => true
+  validates :changeset, :associated => true
+  validates :visible, :inclusion => [true, false]
+
   validate :validate_position
   validate :validate_position
-  validates_associated :changeset
 
   scope :visible, -> { where(:visible => true) }
   scope :invisible, -> { where(:visible => false) }
 
   scope :visible, -> { where(:visible => true) }
   scope :invisible, -> { where(:visible => false) }
@@ -110,7 +117,7 @@ class Node < ActiveRecord::Base
     # provide repeatable reads for the used-by checks. this means it
     # shouldn't be possible to get race conditions.
     Node.transaction do
     # provide repeatable reads for the used-by checks. this means it
     # shouldn't be possible to get race conditions.
     Node.transaction do
-      self.lock!
+      lock!
       check_consistency(self, new_node, user)
       ways = Way.joins(:way_nodes).where(:visible => true, :current_way_nodes => { :node_id => id }).order(:id)
       fail OSM::APIPreconditionFailedError.new("Node #{id} is still used by ways #{ways.collect(&:id).join(",")}.") unless ways.empty?
       check_consistency(self, new_node, user)
       ways = Way.joins(:way_nodes).where(:visible => true, :current_way_nodes => { :node_id => id }).order(:id)
       fail OSM::APIPreconditionFailedError.new("Node #{id} is still used by ways #{ways.collect(&:id).join(",")}.") unless ways.empty?
@@ -131,7 +138,7 @@ class Node < ActiveRecord::Base
 
   def update_from(new_node, user)
     Node.transaction do
 
   def update_from(new_node, user)
     Node.transaction do
-      self.lock!
+      lock!
       check_consistency(self, new_node, user)
 
       # update changeset first
       check_consistency(self, new_node, user)
 
       # update changeset first
@@ -141,7 +148,7 @@ class Node < ActiveRecord::Base
       # update changeset bbox with *old* position first
       changeset.update_bbox!(bbox)
 
       # update changeset bbox with *old* position first
       changeset.update_bbox!(bbox)
 
-      # FIXME logic needs to be double checked
+      # FIXME: logic needs to be double checked
       self.latitude = new_node.latitude
       self.longitude = new_node.longitude
       self.tags = new_node.tags
       self.latitude = new_node.latitude
       self.longitude = new_node.longitude
       self.tags = new_node.tags
@@ -177,7 +184,7 @@ class Node < ActiveRecord::Base
 
     add_metadata_to_xml_node(el, self, changeset_cache, user_display_name_cache)
 
 
     add_metadata_to_xml_node(el, self, changeset_cache, user_display_name_cache)
 
-    if self.visible?
+    if visible?
       el["lat"] = lat.to_s
       el["lon"] = lon.to_s
     end
       el["lat"] = lat.to_s
       el["lon"] = lon.to_s
     end
@@ -228,7 +235,7 @@ class Node < ActiveRecord::Base
     Node.transaction do
       self.version += 1
       self.timestamp = t
     Node.transaction do
       self.version += 1
       self.timestamp = t
-      self.save!
+      save!
 
       # Create a NodeTag
       tags = self.tags
 
       # Create a NodeTag
       tags = self.tags