X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/857f0f460b3cee78454519f9764a4091204bc1a6..0e43524b8f7178eb9fc10d36e30a110fca7cc92c:/app/models/trace.rb diff --git a/app/models/trace.rb b/app/models/trace.rb index 601a4506f..85c0244d5 100644 --- a/app/models/trace.rb +++ b/app/models/trace.rb @@ -28,20 +28,20 @@ class Trace < ActiveRecord::Base end def tagstring=(s) - if s.include? "," - self.tags = s.split(/\s*,\s*/).select { |tag| tag !~ /^\s*$/ }.collect {|tag| - tt = Tracetag.new - tt.tag = tag - tt - } - else - # do as before for backwards compatibility: - self.tags = s.split.collect {|tag| - tt = Tracetag.new - tt.tag = tag - tt - } - end + self.tags = if s.include? "," + s.split(/\s*,\s*/).select { |tag| tag !~ /^\s*$/ }.collect do |tag| + tt = Tracetag.new + tt.tag = tag + tt + end + else + # do as before for backwards compatibility: + s.split.collect do |tag| + tt = Tracetag.new + tt.tag = tag + tt + end + end end def public? @@ -70,16 +70,13 @@ class Trace < ActiveRecord::Base def large_picture f = File.new(large_picture_name, "rb") - logger.info "large picture file: '#{f.path}', bytes: #{File.size(f.path)}" data = f.sysread(File.size(f.path)) - logger.info "have read data, bytes: '#{data.length}'" f.close data end def icon_picture f = File.new(icon_picture_name, "rb") - logger.info "icon picture file: '#{f.path}'" data = f.sysread(File.size(f.path)) f.close data @@ -104,17 +101,17 @@ class Trace < ActiveRecord::Base zipped = filetype =~ /Zip archive/ tarred = filetype =~ /tar archive/ - if gzipped - mimetype = "application/x-gzip" - elsif bzipped - mimetype = "application/x-bzip2" - elsif zipped - mimetype = "application/x-zip" - elsif tarred - mimetype = "application/x-tar" - else - mimetype = "application/gpx+xml" - end + mimetype = if gzipped + "application/x-gzip" + elsif bzipped + "application/x-bzip2" + elsif zipped + "application/x-zip" + elsif tarred + "application/x-tar" + else + "application/gpx+xml" + end mimetype end @@ -126,21 +123,21 @@ class Trace < ActiveRecord::Base zipped = filetype =~ /Zip archive/ tarred = filetype =~ /tar archive/ - if tarred && gzipped - extension = ".tar.gz" - elsif tarred && bzipped - extension = ".tar.bz2" - elsif tarred - extension = ".tar" - elsif gzipped - extension = ".gpx.gz" - elsif bzipped - extension = ".gpx.bz2" - elsif zipped - extension = ".zip" - else - extension = ".gpx" - end + extension = if tarred && gzipped + ".tar.gz" + elsif tarred && bzipped + ".tar.bz2" + elsif tarred + ".tar" + elsif gzipped + ".gpx.gz" + elsif bzipped + ".gpx.bz2" + elsif zipped + ".zip" + else + ".gpx" + end extension end @@ -159,7 +156,7 @@ class Trace < ActiveRecord::Base el1["lon"] = longitude.to_s if inserted el1["user"] = user.display_name el1["visibility"] = visibility - el1["pending"] = (!inserted).to_s + el1["pending"] = inserted ? "false" : "true" el1["timestamp"] = timestamp.xmlschema el2 = XML::Node.new "description" @@ -184,7 +181,7 @@ class Trace < ActiveRecord::Base return Trace.from_xml_node(pt, create) end - fail OSM::APIBadXMLError.new("trace", xml, "XML doesn't contain an osm/gpx_file element.") + raise OSM::APIBadXMLError.new("trace", xml, "XML doesn't contain an osm/gpx_file element.") rescue LibXML::XML::Error, ArgumentError => ex raise OSM::APIBadXMLError.new("trace", xml, ex.message) end @@ -192,15 +189,15 @@ class Trace < ActiveRecord::Base def self.from_xml_node(pt, create = false) trace = Trace.new - fail OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt["visibility"].nil? + raise OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt["visibility"].nil? trace.visibility = pt["visibility"] unless create - fail OSM::APIBadXMLError.new("trace", pt, "ID is required when updating.") if pt["id"].nil? + raise OSM::APIBadXMLError.new("trace", pt, "ID is required when updating.") if pt["id"].nil? trace.id = pt["id"].to_i # .to_i will return 0 if there is no number that can be parsed. # We want to make sure that there is no id with zero anyway - fail OSM::APIBadUserInput.new("ID of trace cannot be zero when updating.") if trace.id == 0 + raise OSM::APIBadUserInput.new("ID of trace cannot be zero when updating.") if trace.id.zero? end # We don't care about the time, as it is explicitly set on create/update/delete @@ -209,7 +206,7 @@ class Trace < ActiveRecord::Base trace.visible = true description = pt.find("description").first - fail OSM::APIBadXMLError.new("trace", pt, "description missing") if description.nil? + raise OSM::APIBadXMLError.new("trace", pt, "description missing") if description.nil? trace.description = description.content pt.find("tag").each do |tag| @@ -300,7 +297,7 @@ class Trace < ActiveRecord::Base self.icon_picture = gpx.icon(min_lat, min_lon, max_lat, max_lon) self.size = gpx.actual_points self.inserted = true - self.save! + save! end logger.info "done trace #{id}"