Permalink
Browse files

Revert "Implemented performance improvement to interpolator"

This reverts commit 68aea16.
  • Loading branch information...
1 parent a21869e commit 446a4cdbe182aaabdcc61d508d5abfc48a16409d @jyurek jyurek committed Nov 30, 2012
Showing with 9 additions and 5 deletions.
  1. +6 −3 lib/paperclip/interpolations.rb
  2. +2 −2 test/attachment_test.rb
  3. +1 −0 test/interpolations_test.rb
@@ -27,9 +27,12 @@ def self.all
# and the arguments to pass, which are the attachment and style name.
# You can pass a method name on your record as a symbol, which should turn
# an interpolation pattern for Paperclip to use.
- def self.interpolate(pattern, *args)
- pattern.gsub /:([[:word:]]+)/ do
- Paperclip::Interpolations.respond_to?($1) ? Paperclip::Interpolations.send($1, *args) : ":#{$1}"
+ def self.interpolate pattern, *args
+ pattern = args.first.instance.send(pattern) if pattern.kind_of? Symbol
+ all.reverse.inject(pattern) do |result, tag|
+ result.gsub(/:#{tag}/) do |match|
+ send( tag, *args )
+ end
end
end
@@ -282,8 +282,8 @@ class AttachmentTest < Test::Unit::TestCase
teardown { @file.close }
- should "make sure that they are interpolated correctly as long non-word characters separate them" do
- assert_equal "1024.omg/1024-bbq/:idwhat/000/001/024.wtf", @dummy.avatar.path
+ should "make sure that they are interpolated correctly" do
+ assert_equal "1024.omg/1024-bbq/1024what/000/001/024.wtf", @dummy.avatar.path
end
end
@@ -231,6 +231,7 @@ def url(*args)
should "call all expected interpolations with the given arguments" do
Paperclip::Interpolations.expects(:id).with(:attachment, :style).returns(1234)
Paperclip::Interpolations.expects(:attachment).with(:attachment, :style).returns("attachments")
+ Paperclip::Interpolations.expects(:notreal).never
value = Paperclip::Interpolations.interpolate(":notreal/:id/:attachment", :attachment, :style)
assert_equal ":notreal/1234/attachments", value
end

0 comments on commit 446a4cd

Please sign in to comment.