module MyMod
def fun1
#...
end
def MyMod.fun2
#...
end
end
fun1とMyMod.fun2の違いは何ですか?
fun1
インスタンスメソッドです。これは、クラスがその定義内にそのモジュールを含んでいる場合にのみアクセスできます。
p RUBY_VERSION
module MyMod
def fun1
p "hi"
end
def MyMod.fun2
p "hello"
end
end
class Foo
include MyMod
end
Foo.new.fun1
MyMod.fun2
p MyMod.instance_methods(false)
p MyMod.public_class_method("fun2")
出力:
"2.0.0"
"hi"
"hello"
[:fun1]
MyMod