Sha256: 4f25ffc2c4a799ce837d440d4b91d2bef61154845b64b64426f49f2a449da70b

Contents?: true

Size: 950 Bytes

Versions: 3

Compression:

Stored size: 950 Bytes

Contents

require "spec_helper"

module ClassSingletonSpecs
  class A
    def self.foo; :foo; end
    def self.bar; :bar; end
  end

  class B < A
    def self.bar; :baz; end
  end

  class C < B
  end

  class A
    def self.woosh; :kapow; end
  end
end

describe "Class singleton methods" do
  it "should be inherited by subclasses" do
    ClassSingletonSpecs::B.foo.should eq(:foo)
  end

  it "should be inherited by subclasses of subclasses" do
    ClassSingletonSpecs::C.foo.should eq(:foo)
  end

  it "subclasses can override inherited methods" do
    ClassSingletonSpecs::A.bar.should eq(:bar)
    ClassSingletonSpecs::B.bar.should eq(:baz)
    ClassSingletonSpecs::C.bar.should eq(:baz)
  end

  it "subclasses inherit additional methods defined on superclass after they are defined" do
    ClassSingletonSpecs::A.woosh.should eq(:kapow)
    ClassSingletonSpecs::B.woosh.should eq(:kapow)
    ClassSingletonSpecs::C.woosh.should eq(:kapow)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
opal-0.3.41 spec/core_ext/class/singleton_methods_spec.rb
opal-0.3.40 spec/core_ext/class/singleton_methods_spec.rb
opal-0.3.39 spec/core_ext/class/singleton_methods_spec.rb