Class

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:

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'.

Calls allocate to create a new object of class’s
class, then invokes that object’s initialize method, passing
it args. This is the method that ends up getting called whenever
an object is constructed using .new.