У меня есть следующий скрипт Ruby, в котором класс Foo включает в себя модуль Baz, в модуле Baz есть включенный хук, чтобы сделать Bar расширенным включающим классом (Foo).Мне просто интересно, почему:
class << klass
extend Bar #this doesn't work. Why?
end
не работает, пока:
klass.extend(Bar) works.
Вот мой код:
#! /usr/bin/env ruby
module Baz
def inst_method
puts "dude"
end
module Bar
def cls_method
puts "Yo"
end
end
class << self
def included klass
# klass.extend(Bar) this works, but why the other approach below doesn't?
class << klass
extend Bar #this doesn't work. Why?
def hello
puts "hello"
end
end
end
end
end
class Foo
include Baz
end
foo = Foo.new
foo.inst_method
Foo.hello
Foo.cls_method