Sha256: 43907ef2c11c283e25925e3a1cd116ec65166a82a3091216f3f404464a759e53

Contents?: true

Size: 840 Bytes

Versions: 35

Compression:

Stored size: 840 Bytes

Contents

require 'spec_helper'

module RuntimeDonatingMethods
  module A
    def baz
      'a'
    end

    def woosh
      :kapow
    end
  end

  module B
  end

  class C
    include A
    include B

    def foo; 'c'; end
  end

  module B
    def foo; 'b'; end
    def bar; 'b'; end
    def baz; 'b'; end
  end

  module A
    def bar; 'a'; end
    def woosh; :kaplunk; end
  end
end

describe 'Donating methods in the runtime' do
  before do
    @c = RuntimeDonatingMethods::C.new
  end

  it 'class methods should not get overwritten by methods from modules' do
    @c.foo.should == 'c'
  end

  it 'methods defined in modules should respect the include order in a class' do
    @c.bar.should == 'b'
    @c.baz.should == 'b'
  end

  it 'allows a module to override a method it previously defined' do
    @c.woosh.should == :kaplunk
  end
end

Version data entries

35 entries across 35 versions & 2 rubygems

Version Path
opal-0.10.6 spec/opal/core/runtime/donate_spec.rb
opal-0.10.6.beta spec/opal/core/runtime/donate_spec.rb
opal-0.10.5 spec/opal/core/runtime/donate_spec.rb
opal-0.10.4 spec/opal/core/runtime/donate_spec.rb
opal-0.11.0.rc1 spec/opal/core/runtime/donate_spec.rb
opal-0.10.3 spec/opal/core/runtime/donate_spec.rb
opal-0.10.2 spec/opal/core/runtime/donate_spec.rb
opal-0.10.1 spec/opal/core/runtime/donate_spec.rb
opal-0.10.0 spec/opal/core/runtime/donate_spec.rb
opal-0.10.0.rc2 spec/opal/core/runtime/donate_spec.rb
opal-0.9.4 spec/opal/core/runtime/donate_spec.rb
opal-0.9.3 spec/opal/core/runtime/donate_spec.rb
opal-0.10.0.rc1 spec/opal/core/runtime/donate_spec.rb
opal-0.10.0.beta5 spec/opal/core/runtime/donate_spec.rb
opal-0.10.0.beta4 spec/opal/core/runtime/donate_spec.rb
opal-0.10.0.beta3 spec/opal/core/runtime/donate_spec.rb
opal-0.10.0.beta2 spec/opal/core/runtime/donate_spec.rb
opal-0.10.0.beta1 spec/opal/core/runtime/donate_spec.rb
opal-0.9.2 spec/opal/core/runtime/donate_spec.rb
opal-0.9.0 spec/opal/core/runtime/donate_spec.rb