diff --git a/lib/draper/base.rb b/lib/draper/base.rb index 8924ad3..047dbcc 100644 --- a/lib/draper/base.rb +++ b/lib/draper/base.rb @@ -220,12 +220,18 @@ module Draper def context options.fetch(:context, {}) end - + def context=(input) options[:context] = input end + def source + model + end + alias_method :to_source, :model + private + def allow?(method) (!allowed? || allowed.include?(method) || FORCED_PROXY.include?(method)) && !denied.include?(method) end diff --git a/lib/draper/decorated_enumerable_proxy.rb b/lib/draper/decorated_enumerable_proxy.rb index 780f0da..34b8701 100644 --- a/lib/draper/decorated_enumerable_proxy.rb +++ b/lib/draper/decorated_enumerable_proxy.rb @@ -38,5 +38,10 @@ module Draper def to_s "#" end + + def source + @wrapped_collection + end + alias_method :to_source, :source end end diff --git a/spec/draper/base_spec.rb b/spec/draper/base_spec.rb index e503e47..67f0248 100644 --- a/spec/draper/base_spec.rb +++ b/spec/draper/base_spec.rb @@ -119,6 +119,13 @@ describe Draper::Base do end end + context(".source / .to_source") do + it "should return the wrapped object" do + subject.to_source == source + subject.source == source + end + end + context("selecting methods") do it "echos the methods of the wrapped class except default exclusions" do source.methods.each do |method| @@ -438,6 +445,13 @@ describe Draper::Base do collection.first.context.should == :admin end end + + context(".source / .to_source") do + it "should return the wrapped object" do + subject.to_source == source + subject.source == source + end + end end describe "a sample usage with denies" do