Permalink
Browse files

Moved style solidification to the post_process method, this also fixe…

…s the reprocess! method
  • Loading branch information...
1 parent 723618a commit ec09660ba52740f3c1d4a47d46e14b9ee2e97b67 @rob-at-thewebfellas rob-at-thewebfellas committed with jyurek Feb 22, 2009
Showing with 27 additions and 5 deletions.
  1. +3 −4 lib/paperclip/attachment.rb
  2. +22 −1 test/attachment_test.rb
  3. +2 −0 test/integration_test.rb
@@ -92,7 +92,6 @@ def assign uploaded_file
@dirty = true
- solidify_style_definitions
post_process if valid?
# Reset the file size if the original file was reprocessed.
@@ -314,9 +313,8 @@ def normalize_style_definition #:nodoc:
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 @@ def extra_options_for(style) #:nodoc:
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)
@@ -265,7 +265,28 @@ def thumb; "-thumb"; 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
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

0 comments on commit ec09660

Please sign in to comment.