validates_presence_of :user_id, :name, :timestamp
validates_presence_of :description, :on => :create
+ validates_format_of :tagstring, :with => /^[^\/;.,?]*$/
# validates_numericality_of :latitude, :longitude
validates_inclusion_of :public, :inserted, :in => [ true, false]
end
def mime_type
- return `file -bi #{trace_name}`.chomp
+ filetype = `/usr/bin/file -bz #{trace_name}`.chomp
+ gzipped = filetype =~ /gzip compressed/
+ bzipped = filetype =~ /bzip2 compressed/
+ zipped = filetype =~ /Zip archive/
+
+ if gzipped then
+ mimetype = "application/x-gzip"
+ elsif bzipped then
+ mimetype = "application/x-bzip2"
+ elsif zipped
+ mimetype = "application/x-zip"
+ else
+ mimetype = "text/xml"
+ end
+
+ return mimetype
end
def extension_name
- filetype = `file -bz #{trace_name}`.chomp
+ filetype = `/usr/bin/file -bz #{trace_name}`.chomp
gzipped = filetype =~ /gzip compressed/
bzipped = filetype =~ /bzip2 compressed/
zipped = filetype =~ /Zip archive/
logger.info("GPX Import importing #{name} (#{id}) from #{user.email}")
# TODO *nix specific, could do to work on windows... would be functionally inferior though - check for '.gz'
- filetype = `file -bz #{trace_name}`.chomp
+ filetype = `/usr/bin/file -bz #{trace_name}`.chomp
gzipped = filetype =~ /gzip compressed/
bzipped = filetype =~ /bzip2 compressed/
zipped = filetype =~ /Zip archive/
tp.lng = point['longitude'].to_f
tp.altitude = point['altitude'].to_f
tp.timestamp = point['timestamp']
- tp.user_id = user.id
tp.gpx_id = id
tp.trackid = point['segment'].to_i
tp.save!
self.icon_picture = gpx.get_icon(min_lat, min_lon, max_lat, max_lon)
self.size = gpx.actual_points
self.inserted = true
- self.save
+ self.save!
end
logger.info "done trace #{id}"