X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/dcfe326f6515cc7aeb9c02b7536e69863c60cd01..1d09cfcb18d589ea494bf5223f2eb9e0a773d7c6:/app/models/trace.rb diff --git a/app/models/trace.rb b/app/models/trace.rb index 0e8763328..9d710d1ce 100644 --- a/app/models/trace.rb +++ b/app/models/trace.rb @@ -2,11 +2,11 @@ # # Table name: gpx_files # -# id :integer not null, primary key -# user_id :integer not null +# id :bigint(8) not null, primary key +# user_id :bigint(8) not null # visible :boolean default(TRUE), not null # name :string default(""), not null -# size :integer +# size :bigint(8) # latitude :float # longitude :float # timestamp :datetime not null @@ -43,12 +43,7 @@ class Trace < ActiveRecord::Base validates :timestamp, :presence => true validates :visibility, :inclusion => %w[private public trackable identifiable] - def destroy - super - FileUtils.rm_f(trace_name) - FileUtils.rm_f(icon_picture_name) - FileUtils.rm_f(large_picture_name) - end + after_destroy :remove_files def tagstring tags.collect(&:tag).join(", ") @@ -208,8 +203,8 @@ class Trace < ActiveRecord::Base end 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) + rescue LibXML::XML::Error, ArgumentError => e + raise OSM::APIBadXMLError.new("trace", xml, e.message) end def update_from_xml_node(pt, create = false) @@ -280,7 +275,7 @@ class Trace < ActiveRecord::Base def import logger.info("GPX Import importing #{name} (#{id}) from #{user.email}") - gpx = ::GPX::File.new(xml_file) + gpx = ::GPX::File.new(trace_name) f_lat = 0 f_lon = 0 @@ -343,4 +338,12 @@ class Trace < ActiveRecord::Base gpx end + + private + + def remove_files + FileUtils.rm_f(trace_name) + FileUtils.rm_f(icon_picture_name) + FileUtils.rm_f(large_picture_name) + end end