B
bob zee
Code 1:
-------
module Mod
def hello
"Hello from Mod.\n"
end
end
class Klass
def hello
"Hello from Klass.\n"
end
end
k = Klass.new
p k.hello #=> "Hello from Klass.\n"
k.extend(Mod)
p k.hello #=> "Hello from Mod.\n"
Code 2:
--------
module Mod
def hello
"Hello from Mod.\n"
end
end
class Klass
include Mod
def hello
"Hello from Klass.\n"
end
end
k = Klass.new
p k.hello #=> "Hello from Klass.\n"
k.extend(Mod)
p k.hello #=> "Hello from Klass.\n"
Why last k.hello is "Hello from Klass" Not "Hello from Mod"? After
Klass mixin with Mod, I am extending k object to include Mod so k's
metaclass methods now point to Mod methods.. right? they should get
called first before Klass instance methods if I am thinking right.
-------
module Mod
def hello
"Hello from Mod.\n"
end
end
class Klass
def hello
"Hello from Klass.\n"
end
end
k = Klass.new
p k.hello #=> "Hello from Klass.\n"
k.extend(Mod)
p k.hello #=> "Hello from Mod.\n"
Code 2:
--------
module Mod
def hello
"Hello from Mod.\n"
end
end
class Klass
include Mod
def hello
"Hello from Klass.\n"
end
end
k = Klass.new
p k.hello #=> "Hello from Klass.\n"
k.extend(Mod)
p k.hello #=> "Hello from Klass.\n"
Why last k.hello is "Hello from Klass" Not "Hello from Mod"? After
Klass mixin with Mod, I am extending k object to include Mod so k's
metaclass methods now point to Mod methods.. right? they should get
called first before Klass instance methods if I am thinking right.