Skip to content

Commit

Permalink
Add a #to_param interpolation
Browse files Browse the repository at this point in the history
  • Loading branch information
Jon Yurek committed Jun 28, 2011
1 parent c17a358 commit 8d262e3
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 4 deletions.
5 changes: 5 additions & 0 deletions lib/paperclip/interpolations.rb
Expand Up @@ -99,6 +99,11 @@ def id attachment, style_name
attachment.instance.id
end

# Returns the #to_param of the instance.
def param attachment, style_name
attachment.instance.to_param
end

# Returns the fingerprint of the instance.
def fingerprint attachment, style_name
attachment.fingerprint
Expand Down
20 changes: 16 additions & 4 deletions test/integration_test.rb
Expand Up @@ -34,20 +34,20 @@ class IntegrationTest < Test::Unit::TestCase
should "create its thumbnails properly" do
assert_match /\b50x50\b/, `identify "#{@dummy.avatar.path(:thumb)}"`
end

context 'reprocessing with unreadable original' do
setup { File.chmod(0000, @dummy.avatar.path) }

should "not raise an error" do
assert_nothing_raised do
@dummy.avatar.reprocess!
end
end

should "return false" do
assert ! @dummy.avatar.reprocess!
end

teardown { File.chmod(0644, @dummy.avatar.path) }
end

Expand Down Expand Up @@ -467,6 +467,18 @@ def s3_headers_for attachment, style
@files_on_s3 = s3_files_for @dummy.avatar
end

context 'assigning itself to a new model' do
setup do
@d2 = Dummy.new
@d2.avatar = @dummy.avatar
@d2.save
end

should "have the same name as the old file" do
assert_equal @d2.avatar.original_filename, @dummy.avatar.original_filename
end
end

should "have the same contents as the original" do
@file.rewind
assert_equal @file.read, @files_on_s3[:original].read
Expand Down
7 changes: 7 additions & 0 deletions test/interpolations_test.rb
Expand Up @@ -50,6 +50,13 @@ class InterpolationsTest < Test::Unit::TestCase
assert_equal "png", Paperclip::Interpolations.extension(attachment, :style)
end

should "return the #to_param of the attachment" do
attachment = mock
attachment.expects(:to_param).returns("23-awesome")
attachment.expects(:instance).returns(attachment)
assert_equal "23-awesome", Paperclip::Interpolations.param(attachment, :style)
end

should "return the id of the attachment" do
attachment = mock
attachment.expects(:id).returns(23)
Expand Down

0 comments on commit 8d262e3

Please sign in to comment.