Ruby v1.6 Class and Library Reference: Class

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.