Sha256: e2a8cd99d4cca66ef28d1455d6be83aeac8ba8383bb18c9321dea6723c6a9c15

Contents?: true

Size: 600 Bytes

Versions: 4

Compression:

Stored size: 600 Bytes

Contents

require 'spec_helper'

module StrongPresenter
  describe Delegation do
    protect_class(Product)
    protect_class(ProductPresenter)

    it '#delegate to object by default' do
      ProductPresenter.delegate :stuff
      Product.send(:define_method, :stuff) {"stuffed"}
      expect(ProductPresenter.new(Product.new).stuff).to eq "stuffed"
    end

    it 'can #delegate elsewhere' do
      ProductPresenter.send(:define_method, :elsewhere) {[3,4,5]}
      ProductPresenter.delegate :array, :to => :elsewhere
      expect(ProductPresenter.new(Product.new).elsewhere.size).to eq 3
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
strong_presenter-0.2.2 spec/strong_presenter/delegation_spec.rb
strong_presenter-0.2.1 spec/strong_presenter/delegation_spec.rb
strong_presenter-0.2.0 spec/strong_presenter/delegation_spec.rb
strong_presenter-0.1.0 spec/strong_presenter/delegation_spec.rb