--- !ruby/object:RI::ClassDescription 
attributes: []

class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: Classes in Ruby are first-class objects---each is an instance of class <tt>Class</tt>.
- !ruby/struct:SM::Flow::P 
  body: "When a new class is created (typically using <tt>class Name ... end</tt>), an object of type <tt>Class</tt> is created and assigned to a global constant (<tt>Name</tt> in this case). When <tt>Name.new</tt> is called to create a new object, the <tt>new</tt> method in <tt>Class</tt> is run by default. This can be demonstrated by overriding <tt>new</tt> in <tt>Class</tt>:"
- !ruby/struct:SM::Flow::VERB 
  body: "   class Class\n      alias oldNew  new\n      def new(*args)\n        print &quot;Creating a new &quot;, self.name, &quot;\\n&quot;\n        oldNew(*args)\n      end\n    end\n\n    class Name\n    end\n\n    n = Name.new\n"
- !ruby/struct:SM::Flow::P 
  body: <em>produces:</em>
- !ruby/struct:SM::Flow::VERB 
  body: "   Creating a new Name\n"
- !ruby/struct:SM::Flow::P 
  body: Classes, modules, and objects are interrelated. In the diagram that follows, the vertical arrows represent inheritance, and the parentheses meta-classes. All metaclasses are instances of the class `Class'.
- !ruby/struct:SM::Flow::VERB 
  body: "                          +------------------+\n                          |                  |\n            Object----&gt;(Object)              |\n             ^  ^        ^  ^                |\n             |  |        |  |                |\n             |  |  +-----+  +---------+      |\n             |  |  |                  |      |\n             |  +-----------+         |      |\n             |     |        |         |      |\n      +------+     |     Module---&gt;(Module)  |\n      |            |        ^         ^      |\n OtherClass--&gt;(OtherClass)  |         |      |\n                            |         |      |\n                          Class----&gt;(Class)  |\n                            ^                |\n                            |                |\n                            +----------------+\n"
constants: []

full_name: Class
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: allocate
- !ruby/object:RI::MethodSummary 
  name: inherited
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: superclass
name: Class
superclass: Module
