Entries from August 2008

August 8, 2008

You’re just in a giant Object.class_eval block

>> Object.methods.size
=> 85
>> def i_is_in_ur_Object; "kthxbai" end
=> nil
>> Object.methods.size
=> 86
>> String.new.i_is_in_ur_Object
=> "kthxbai"

Careful what you put in there!

August 5, 2008

The Class and Module love story

In Ruby, Class is a Module which, like any object, has a class.

>> Class.superclass
=> Module
>> Module.class
=> Class

But the crazy thing is, it’s the complete opposite in the implementation.
(Excerpt from ruby.h)

typedef struct {
VALUE super;
struct st_table *iv_tbl;
} rb_classext_t;

struct RClass {
struct RBasic basic;
[...]