diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-04-02 21:30:32 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-04-02 21:30:32 +0000 |
commit | 6348eeaf8a5124dfd7793211d673bb928f1ea64b (patch) | |
tree | 09cd1cec3cf162ef793d2be2d5ee7eeac2eece2c /app | |
parent | 4cbe6b626e3b338d7c8d7dcb236d40f8f99ff393 (diff) | |
download | redmine-6348eeaf8a5124dfd7793211d673bb928f1ea64b.tar.gz redmine-6348eeaf8a5124dfd7793211d673bb928f1ea64b.zip |
Attachment model clean up: fixed some inconsistent indentation and an inaccurate comment (closes patch #903 by Rocco Stanzione).
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1321 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r-- | app/models/attachment.rb | 97 |
1 files changed, 48 insertions, 49 deletions
diff --git a/app/models/attachment.rb b/app/models/attachment.rb index cdcb8d231..08f440816 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -35,48 +35,48 @@ class Attachment < ActiveRecord::Base errors.add_to_base :too_long if self.filesize > Setting.attachment_max_size.to_i.kilobytes end - def file=(incomming_file) - unless incomming_file.nil? - @temp_file = incomming_file - if @temp_file.size > 0 - self.filename = sanitize_filename(@temp_file.original_filename) - self.disk_filename = DateTime.now.strftime("%y%m%d%H%M%S") + "_" + self.filename - self.content_type = @temp_file.content_type.to_s.chomp - self.filesize = @temp_file.size - end - end - end - - def file - nil - end - - # Copy temp file to its final location - def before_save - if @temp_file && (@temp_file.size > 0) - logger.debug("saving '#{self.diskfile}'") - File.open(diskfile, "wb") do |f| - f.write(@temp_file.read) - end - self.digest = Digest::MD5.hexdigest(File.read(diskfile)) - end - # Don't save the content type if it's longer than the authorized length - if self.content_type && self.content_type.length > 255 - self.content_type = nil - end - end - - # Deletes file on the disk - def after_destroy - if self.filename? - File.delete(diskfile) if File.exist?(diskfile) - end - end + def file=(incoming_file) + unless incoming_file.nil? + @temp_file = incoming_file + if @temp_file.size > 0 + self.filename = sanitize_filename(@temp_file.original_filename) + self.disk_filename = DateTime.now.strftime("%y%m%d%H%M%S") + "_" + self.filename + self.content_type = @temp_file.content_type.to_s.chomp + self.filesize = @temp_file.size + end + end + end - # Returns file's location on disk - def diskfile - "#{@@storage_path}/#{self.disk_filename}" - end + def file + nil + end + + # Copy temp file to its final location + def before_save + if @temp_file && (@temp_file.size > 0) + logger.debug("saving '#{self.diskfile}'") + File.open(diskfile, "wb") do |f| + f.write(@temp_file.read) + end + self.digest = Digest::MD5.hexdigest(File.read(diskfile)) + end + # Don't save the content type if it's longer than the authorized length + if self.content_type && self.content_type.length > 255 + self.content_type = nil + end + end + + # Deletes file on the disk + def after_destroy + if self.filename? + File.delete(diskfile) if File.exist?(diskfile) + end + end + + # Returns file's location on disk + def diskfile + "#{@@storage_path}/#{self.disk_filename}" + end def increment_download increment!(:downloads) @@ -87,18 +87,17 @@ class Attachment < ActiveRecord::Base end def image? - self.filename =~ /\.(jpeg|jpg|gif|png)$/i + self.filename =~ /\.(jpe?g|gif|png)$/i end private def sanitize_filename(value) - # get only the filename, not the whole path - just_filename = value.gsub(/^.*(\\|\/)/, '') - # NOTE: File.basename doesn't work right with Windows paths on Unix - # INCORRECT: just_filename = File.basename(value.gsub('\\\\', '/')) + # get only the filename, not the whole path + just_filename = value.gsub(/^.*(\\|\/)/, '') + # NOTE: File.basename doesn't work right with Windows paths on Unix + # INCORRECT: just_filename = File.basename(value.gsub('\\\\', '/')) - # Finally, replace all non alphanumeric, underscore or periods with underscore - @filename = just_filename.gsub(/[^\w\.\-]/,'_') + # Finally, replace all non alphanumeric, hyphens or periods with underscore + @filename = just_filename.gsub(/[^\w\.\-]/,'_') end - end |