Rubyでは、次のことができます。
module Foo
end
class Bar
include Foo
end
module Foo
def do_something_instancey
puts "I'm an instance!"
end
end
次に、Bar
オブジェクトをインスタンス化すると、それを呼び出すことができますdo_something_instancey
。
b = Bar.new
b.do_something_instancey
しかし、私がこれを行うと...
module Foo
def self.included(base)
def base.do_something_classy do
puts "I'm a class!"
end
end
end
私の理解では、そのクラスメソッドを定義する前に含めたため、に「アタッチ」されなかったため、呼び出すFoo
ことBar
がBar.do_something_classy
できませんBar
。
私はそれが少し不正確かもしれない/本当に正しい用語ではないかもしれないことを理解しています。とにかく、上記の例で、モジュールがすでに含まれている後にクラスメソッドをBar
fromにアタッチする方法はありますか?Foo