我有简单的代码
module Foo
def foo
p self
#p 'Foo' -> bad decision for me
end
end
class Bar
include Foo
end
Bar.new.foo #=> #<Bar:0x00000002f0faf8>
但我需要这样的东西
Bar.new.foo #=> Foo
我需要调用此方法的模块的名称。 那么,有哪些方法可以找到模块的名称
答案 0 :(得分:8)
执行以下操作:
module Foo
def foo
method(__method__).owner
end
end
class Bar
include Foo
end
Bar.new.foo # => Foo