An object is composed of a bunch of instance variables and a link to a
class.
• The methods of an object live in the object’s class. (From the point of view
of the class, they’re called instance methods.)
• The class itself is just an object of class Class. The name of the class is
just a constant.
• Class is a subclass of Module. A module is basically a package of methods.
In addition to that, a class can also be instantiated (with new) or arranged
in a hierarchy (through its superclass).
• Constants are arranged in a tree similar to a file system, where the names
of modules and classes play the part of directories and regular constants
play the part of files.
• Each class has an ancestors chain, beginning with the class itself and
going up to BasicObject.