2018-03-04 10:09:32 -05:00
|
|
|
require_relative '../../spec_helper'
|
|
|
|
require_relative 'fixtures/classes'
|
2017-05-07 08:04:49 -04:00
|
|
|
|
|
|
|
describe "Class#superclass" do
|
|
|
|
it "returns the superclass of self" do
|
|
|
|
BasicObject.superclass.should be_nil
|
|
|
|
Object.superclass.should == BasicObject
|
|
|
|
Class.superclass.should == Module
|
|
|
|
Class.new.superclass.should == Object
|
|
|
|
Class.new(String).superclass.should == String
|
2020-12-20 11:16:26 -05:00
|
|
|
Class.new(Integer).superclass.should == Integer
|
2017-05-07 08:04:49 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
# redmine:567
|
|
|
|
describe "for a singleton class" do
|
|
|
|
it "of an object returns the class of the object" do
|
|
|
|
a = CoreClassSpecs::A.new
|
|
|
|
sc = class << a; self; end
|
|
|
|
sc.superclass.should == CoreClassSpecs::A
|
|
|
|
end
|
|
|
|
|
|
|
|
it "of a class returns the singleton class of its superclass" do # sorry, can't find a simpler way to express this...
|
|
|
|
sc = class << CoreClassSpecs::H; self; end
|
|
|
|
sc.superclass.should == class << CoreClassSpecs::A; self; end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|