Ruby Object Model Diagram

This video taken from my ruby reloaded course digs deep into what s going.
Ruby object model diagram. A diagram showing superclass and eigenclass links between ruby objects but not the module inclusion links is available at www atalon cz. It shows a snapshot of the detailed state of a system at a point in time thus an object diagram encompasses objects and their relationships which may be considered a special case of a class diagram or a. Hash array string integer and float. Everything is an object or more precisely every box is this diagram is a basicobject.
Ruby s extreme decoupling and duck typing philosophy doesn t judge a class by its hierarchy. The interesting thing is how those objects are linked together and classified. When you write ruby code you are inside a main object that s why you can just write puts hello world instead of kernel puts hello world. Thus variables don t have a predefined type which conflicts with uml s static typed object model.
But another thing that s worth noting is ruby objects hierarchy. Since ruby 1 9 its hierarchy is like this. Umlify uses yuml probably the most used uml textual tool to render the diagram. Likewise a static uml object diagram is an instance of a class diagram.
We now have a mental model for how ruby manages classes instances superclasses and modules but why does it matter. If you re a beginner you may want to look at a tutorial instead. Using class ancestors included modules and superclass diagram the object model of these several commonly used ruby classes. There are just a few things that exist in ruby that you need to understand to really grok its object model.
Differently from languages like java and c. Object includes the kernel module so object has all the instance methods of kernel like puts gets exit. So if you re a ruby programmer you probably know that everything in ruby is an object. You can open your irb console and see it for yourself by typing.
You can t get very far into ruby land without hearing that phrase. Everything is an object. It s true though everything in ruby is an object. This is not an easy task since as the author comments.
For ruby this post probably doesn t contain much new stuff for you. Since 11 january 2012 there is a diagram containing module inclusion links.