Simplify CollectionDecorator#find

This commit is contained in:
Andrew Haines 2012-10-31 23:52:55 +00:00
parent f21b92cda4
commit ecd5b06274
2 changed files with 5 additions and 8 deletions

View File

@ -1,4 +1,3 @@
require 'active_support/core_ext/object/blank'
module Draper
class CollectionDecorator
include Enumerable
@ -28,13 +27,11 @@ module Draper
end
alias_method :to_ary, :decorated_collection
def find(ifnone_or_id = nil, &blk)
def find(*args, &block)
if block_given?
decorated_collection.find(ifnone_or_id, &blk)
decorated_collection.find(*args, &block)
else
obj = decorated_collection.first
return nil if obj.blank?
obj.class.find(ifnone_or_id)
decorator_class.find(*args)
end
end

View File

@ -31,8 +31,8 @@ describe Draper::CollectionDecorator do
context "without a block" do
it "decorates Model.find" do
source.should_not_receive(:find)
Product.should_receive(:find).with(1)
subject.find(1)
Product.should_receive(:find).with(1).and_return(:product)
subject.find(1).should == ProductDecorator.new(:product)
end
end
end