diff --git a/lib/paperclip.rb b/lib/paperclip.rb index 22ee9c4..409cc63 100644 --- a/lib/paperclip.rb +++ b/lib/paperclip.rb @@ -32,6 +32,7 @@ require 'paperclip/upfile' require 'paperclip/iostream' require 'paperclip/geometry' require 'paperclip/processor' +require 'paperclip/tempfile' require 'paperclip/thumbnail' require 'paperclip/recursive_thumbnail' require 'paperclip/storage' diff --git a/lib/paperclip/processor.rb b/lib/paperclip/processor.rb index da3e213..0b43cb0 100644 --- a/lib/paperclip/processor.rb +++ b/lib/paperclip/processor.rb @@ -33,17 +33,4 @@ module Paperclip new(file, options, attachment).make end end - - # Due to how ImageMagick handles its image format conversion and how Tempfile - # handles its naming scheme, it is necessary to override how Tempfile makes - # its names so as to allow for file extensions. Idea taken from the comments - # on this blog post: - # http://marsorange.com/archives/of-mogrify-ruby-tempfile-dynamic-class-definitions - class Tempfile < ::Tempfile - # Replaces Tempfile's +make_tmpname+ with one that honors file extensions. - def make_tmpname(basename, n) - extension = File.extname(basename) - sprintf("%s,%d,%d%s", File.basename(basename, extension), $$, n.to_i, extension) - end - end end diff --git a/lib/paperclip/tempfile.rb b/lib/paperclip/tempfile.rb new file mode 100644 index 0000000..48a75a8 --- /dev/null +++ b/lib/paperclip/tempfile.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'English' + +module Paperclip + # Due to how ImageMagick handles its image format conversion and how Tempfile + # handles its naming scheme, it is necessary to override how Tempfile makes + # its names so as to allow for file extensions. Idea taken from the comments + # on this blog post: + # http://marsorange.com/archives/of-mogrify-ruby-tempfile-dynamic-class-definitions + class Tempfile < ::Tempfile + # это похоже актуально только для java (не проверял, в mri 3.2 точно не вызывается) + + # Replaces Tempfile's +make_tmpname+ with one that honors file extensions. + def make_tmpname(basename, n) + extension = File.extname(basename) + sprintf("%s,%d,%d%s", File.basename(basename, extension), $PROCESS_ID, n.to_i, extension) + end + end +end