Skip to content

Latest commit

 

History

History
38 lines (35 loc) · 3.27 KB

File metadata and controls

38 lines (35 loc) · 3.27 KB

Metaprogramming with Ruby 2


                                 +---------------+----+                         +------------+-------+
                                 |               |    |      superclass         |  Module    |       |
                                 |   Object      |    <-------------------------+            |       |
                                 +---------------+    |                         |            |       |
                                 |  def Class         |                         +------------+       |
                                 |  ...               +---------------+         |                    |
                                 |                    |               |         |                    |
                                 |                    |               |         +-----------^--------+
                                 +----------^---------+               |                     |
                                            |                         |                     |
                                            |                         |class                |
                                            |superclass               |                     |
+-------------+                             |                         |                     |superclass
|             |   class                     |                         |                     |
|   obj1      +-----------+                 |                         |                     |
|   @y = 15   |           |                 |                         |                     |
|   @x = 24   |           |                 |                         |                     |
+-------------+           |         +-------+---+-------+             |         +-----------++-------+
+-------------+           |         |           |       |             |         |            |       |
|             |           +--------->  MyClass  |       |             +--------->   Class    |       |
|             |   class             +-----------+       |                       |            |       |   class
|     obj2    +--------------------->                   +----------------------->            |       +---------------+
|             |                     |                   |    class              +------------+       |               |
+-------------+                     |                   |                       |  def new           |               |
+-------------+           +--------->                   |                       |  def allocate      |               |
|             |           |         +-------------------+                       +----------^---------+               |
|  obj3       |           |                                                                |                         |
|  @x=10      |  class    |                                                                |                         |
|             +-----------+                                                                |                         |
|             |                                                                            +-------------------------+
+-------------+