class Class < Module

Classes in Ruby are first-class objects—each is an instance of class Class. When a new class is created (typically using class Name ... end), an object of type Class is created and assigned to a global constant (Name in this case). When Name.new is called to create a new object, the new method in Class is run by default. This can be demonstrated by overriding new in Class:

class Class alias oldNew new def new(*args) print "Creating a new ", self.name, "\n" oldNew(*args) end end class Name end n = Name.new

produces:

Creating a new Name

class methods

inherited
aClass.inherited( aSubClass )
This is a singleton method (per class) invoked by Ruby when a subclass of aClass is created. The new subclass is passed as a parameter.
class Top def Top.inherited(sub) print "New subclass: ", sub, "\n" end end class Middle < Top end class Bottom < Middle end

produces:

New subclass: Middle New subclass: Bottom
new
Class.new( aSuperClass=Object ) → aClass
Creates a new anonymous (unnamed) class with the given superclass (or Object if no parameter is given).

instance methods

new
aClass.new( [args]* ) → anObject
Creates a new object of aClass's class, then invokes that object's initialize method, passing it args.
superclass
aClass.superclass → aSuperClass or nil
Returns the superclass of aClass, or nil.
Class.superclass Module Object.superclass nil
Show this content in its own window