>>>>> "T" == T Onoma <transami / runbox.com> writes:

T> Can anyone take a look at this and tell me what the hek is happening with 
T> extend? (as in Pickaxe Chapter 19)

 Well, I've not understood your problem.

 To simplify : by default (because it's possible to redefine what do ruby)
 an extend can be seen as an include in the singleton class.

 For your example

>> c = C.new
>> def c.happy; print "M"; super if defined?(super); end

[...]

>> singleton: Mx  [C, Object, Kernel]
>> 
>> Notice in the singleton that "M" is invisible, but it does in fact exist
>> anonymously before C.

 M is not invisible : it just don't exist. You have just defined a method
 #happy for `c', like the module M define a method #happy


Guy Decoux