Commit ec09660b by Rob Anderton Committed by Jon Yurek

Moved style solidification to the post_process method, this also fixes the reprocess! method

parent 723618a2
...@@ -92,7 +92,6 @@ module Paperclip ...@@ -92,7 +92,6 @@ module Paperclip
@dirty = true @dirty = true
solidify_style_definitions
post_process if valid? post_process if valid?
# Reset the file size if the original file was reprocessed. # Reset the file size if the original file was reprocessed.
...@@ -314,9 +313,8 @@ module Paperclip ...@@ -314,9 +313,8 @@ module Paperclip
def solidify_style_definitions #:nodoc: def solidify_style_definitions #:nodoc:
@styles.each do |name, args| @styles.each do |name, args|
if @styles[name][:geometry].respond_to?(:call) @styles[name][:geometry] = @styles[name][:geometry].call(instance) if @styles[name][:geometry].respond_to?(:call)
@styles[name][:geometry] = @styles[name][:geometry].call(instance) @styles[name][:processors] = @styles[name][:processors].call(instance) if @styles[name][:processors].respond_to?(:call)
end
end end
end end
...@@ -336,6 +334,7 @@ module Paperclip ...@@ -336,6 +334,7 @@ module Paperclip
def post_process #:nodoc: def post_process #:nodoc:
return if @queued_for_write[:original].nil? return if @queued_for_write[:original].nil?
solidify_style_definitions
return if fire_events(:before) return if fire_events(:before)
post_process_styles post_process_styles
return if fire_events(:after) return if fire_events(:after)
......
...@@ -265,7 +265,28 @@ class AttachmentTest < Test::Unit::TestCase ...@@ -265,7 +265,28 @@ class AttachmentTest < Test::Unit::TestCase
end end
end end
end end
context "An attachment with :processors that is a proc" do
setup do
rebuild_model :styles => { :normal => '' }, :processors => lambda { |a| [ :test ] }
@attachment = Dummy.new.avatar
end
should "not run the proc immediately" do
assert_kind_of Proc, @attachment.styles[:normal][:processors]
end
context "when assigned" do
setup do
@attachment.assign(StringIO.new("."))
end
should "have the correct processors" do
assert_equal [ :test ], @attachment.styles[:normal][:processors]
end
end
end
context "An attachment with erroring processor" do context "An attachment with erroring processor" do
setup do setup do
rebuild_model :processor => [:thumbnail], :styles => { :small => '' }, :whiny_thumbnails => true rebuild_model :processor => [:thumbnail], :styles => { :small => '' }, :whiny_thumbnails => true
......
...@@ -39,6 +39,7 @@ class IntegrationTest < Test::Unit::TestCase ...@@ -39,6 +39,7 @@ class IntegrationTest < Test::Unit::TestCase
setup do setup do
Dummy.class_eval do Dummy.class_eval do
has_attached_file :avatar, :styles => { :thumb => "150x25#" } has_attached_file :avatar, :styles => { :thumb => "150x25#" }
has_attached_file :avatar, :styles => { :thumb => "150x25#", :dynamic => lambda { |a| '50x50#' } }
end end
@d2 = Dummy.find(@dummy.id) @d2 = Dummy.find(@dummy.id)
@d2.avatar.reprocess! @d2.avatar.reprocess!
...@@ -47,6 +48,7 @@ class IntegrationTest < Test::Unit::TestCase ...@@ -47,6 +48,7 @@ class IntegrationTest < Test::Unit::TestCase
should "create its thumbnails properly" do should "create its thumbnails properly" do
assert_match /\b150x25\b/, `identify "#{@dummy.avatar.path(:thumb)}"` assert_match /\b150x25\b/, `identify "#{@dummy.avatar.path(:thumb)}"`
assert_match /\b50x50\b/, `identify "#{@dummy.avatar.path(:dynamic)}"`
end end
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment