Mix-inしたモジュールの特異メソッドの呼び出し方
Ruby Silverに向けて勉強しているものです。
特異クラスについて勉強用にサンプルコードを作成していたのですが、
自身の理解の範疇を越えたので質問させてください。
Module Fooを作成して、Class Barにextendでミックスインしています。
foo1が特異メソッドで定義されるのは理解しているつもりなんですが、
foo2、foo3についてBarからどのように呼び出せばよいのか(もしくはできない)を
おしえていただけないでしょうか
よろしくお願いいたします。
module Foo
def foo1
puts "foofoo1"
end
def Foo.foo2
puts "foofoo2"
end
class << self
def foo3
puts "foofoo3"
end
end
end
class Bar
extend Foo
end
結果です。
head :030 > Bar.foo2
NoMethodError: undefined method `foo2' for Bar:Class
from (irb):30
from /home/anoguchi/.rvm/rubies/ruby-head/bin/irb:11:in `<main>'
head :031 > Bar.foo3
NoMethodError: undefined method `foo3' for Bar:Class
from (irb):31
from /home/anoguchi/.rvm/rubies/ruby-head/bin/irb:11:in `<main>'