Permalink
Browse files

Don't calculate fingerprint when fingerprint can not be stored.

  • Loading branch information...
1 parent 7b70fa4 commit 4e076813a48cd1466fe0159ab411c11f5620bd4c Nathan Hyde committed with jyurek Jan 4, 2012
Showing with 11 additions and 3 deletions.
  1. +3 −2 lib/paperclip/attachment.rb
  2. +8 −1 test/attachment_test.rb
View
5 lib/paperclip/attachment.rb
@@ -106,11 +106,12 @@ def assign uploaded_file
return nil if uploaded_file.nil?
uploaded_filename ||= uploaded_file.original_filename
+ stores_fingerprint = @instance.respond_to?("#{name}_fingerprint".to_sym)
@queued_for_write[:original] = to_tempfile(uploaded_file)
instance_write(:file_name, uploaded_filename.strip)
instance_write(:content_type, uploaded_file.content_type.to_s.strip)
instance_write(:file_size, uploaded_file.size.to_i)
- instance_write(:fingerprint, generate_fingerprint(uploaded_file))
+ instance_write(:fingerprint, stores_fingerprint ? generate_fingerprint(uploaded_file) : false)
instance_write(:updated_at, Time.now)
@dirty = true
@@ -119,7 +120,7 @@ def assign uploaded_file
# Reset the file size if the original file was reprocessed.
instance_write(:file_size, @queued_for_write[:original].size.to_i)
- instance_write(:fingerprint, generate_fingerprint(@queued_for_write[:original]))
+ instance_write(:fingerprint, generate_fingerprint(@queued_for_write[:original])) if stores_fingerprint
ensure
uploaded_file.close if close_uploaded_file
end
View
9 test/attachment_test.rb
@@ -997,7 +997,14 @@ def do_after_all; end
assert_equal now.to_i, @dummy.avatar.updated_at
end
end
-
+
+ should "not calculate fingerprint without fingerprint column" do
+ assert_equal false, @dummy.respond_to?(:avatar_fingerprint)
+ @dummy.avatar = @file
+ @dummy.save
+ assert_nil @dummy.avatar.fingerprint
+ end
+
context "and avatar_content_type column" do
setup do
ActiveRecord::Base.connection.add_column :dummies, :avatar_content_type, :string

0 comments on commit 4e07681

Please sign in to comment.