Google

class Class
Parent: Module
Version: 1.6

Index:

inherited new new superclass


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


Extracted from the book "Programming Ruby - The Pragmatic Programmer's Guide"
Copyright © 2000 Addison Wesley Longman, Inc. Released under the terms of the Open Publication License V1.0.
This reference is available for download.