Sha256: cea7b72b2ad4f2fb9995707b39cb84453edb7b5d9c925a32f41f1e82521969a8

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

require 'test_helper'

context "Extension with class hierachies" do

  specify "should make super classes methods available" do
    Extension.new "subclass" do |e|
      e.sources full_dir("headers/subclass.h")

      node = e.namespace "subclass"
      node.classes("SuperSuper").ignore

      # Rice doesn't support multiple-inheritance (neither does Ruby), so for now
      # until we can fake it, force people to specify
      node.classes("Multiple").use_superclass( node.classes("Base2") )
    end

    require 'subclass'

    # Ignored superclasses should not cause problems with wrapped subclasses
    should.not.raise NameError do
      Base.new.one.should == Sub.new.one
      Base.new.zero.should == Sub.new.zero
    end

    # Template superclasses shouldn't cause problems
    should.not.raise NameError do
      TemplateSub.new.zero.should == TemplateSub.new.custom
    end

    should.not.raise NameError do
      TemplatePtr.new.custom
    end

    should.not.raise NameError do
      Multiple.new
    end

    Multiple.superclass.should.equal Base2
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rbplusplus-0.9.1 test/subclass_test.rb