belongs_to :changeset
- has_many :old_nodes, :order => :version
+ has_many :old_nodes, -> { order(:version) }
has_many :way_nodes
has_many :ways, :through => :way_nodes
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) }
# Sanity check the latitude and longitude and add an error if it's broken
def validate_position
raise OSM::APIBadXMLError.new("node", pt, "lat missing") if pt['lat'].nil?
raise OSM::APIBadXMLError.new("node", pt, "lon missing") if pt['lon'].nil?
- begin
- node.lat = Float(pt['lat'])
- rescue
- raise OSM::APIBadXMLError.new("node", pt, "lat not a number")
- end
- begin
- node.lon = Float(pt['lon'])
- rescue
- raise OSM::APIBadXMLError.new("node", pt, "lon not a number")
- end
+ node.lat = OSM.parse_float(pt['lat'], OSM::APIBadXMLError, "node", pt, "lat not a number")
+ node.lon = OSM.parse_float(pt['lon'], OSM::APIBadXMLError, "node", pt, "lon not a number")
raise OSM::APIBadXMLError.new("node", pt, "Changeset id is missing") if pt['changeset'].nil?
node.changeset_id = pt['changeset'].to_i