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
@dirty = true
solidify_style_definitions
post_process if valid?
# Reset the file size if the original file was reprocessed.
......@@ -314,9 +313,8 @@ module Paperclip
def solidify_style_definitions #:nodoc:
@styles.each do |name, args|
if @styles[name][:geometry].respond_to?(:call)
@styles[name][:geometry] = @styles[name][:geometry].call(instance)
end
@styles[name][:geometry] = @styles[name][:geometry].call(instance) if @styles[name][:geometry].respond_to?(:call)
@styles[name][:processors] = @styles[name][:processors].call(instance) if @styles[name][:processors].respond_to?(:call)
end
end
......@@ -336,6 +334,7 @@ module Paperclip
def post_process #:nodoc:
return if @queued_for_write[:original].nil?
solidify_style_definitions
return if fire_events(:before)
post_process_styles
return if fire_events(:after)
......
......@@ -266,6 +266,27 @@ class AttachmentTest < Test::Unit::TestCase
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
setup do
rebuild_model :processor => [:thumbnail], :styles => { :small => '' }, :whiny_thumbnails => true
......
......@@ -39,6 +39,7 @@ class IntegrationTest < Test::Unit::TestCase
setup do
Dummy.class_eval do
has_attached_file :avatar, :styles => { :thumb => "150x25#" }
has_attached_file :avatar, :styles => { :thumb => "150x25#", :dynamic => lambda { |a| '50x50#' } }
end
@d2 = Dummy.find(@dummy.id)
@d2.avatar.reprocess!
......@@ -47,6 +48,7 @@ class IntegrationTest < Test::Unit::TestCase
should "create its thumbnails properly" do
assert_match /\b150x25\b/, `identify "#{@dummy.avatar.path(:thumb)}"`
assert_match /\b50x50\b/, `identify "#{@dummy.avatar.path(:dynamic)}"`
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