- モジュール内でクラスが呼ばれた場合、既に同名モジュールでクラスが定義されていたら、そのモジュールのクラスが呼ばれる
- 同名モジュール外のクラスを呼ぶ場合は、
::
を一番左につけてトップレベルと明示する
# トップレベルの Test クラス class Test def hello "Test#hello" end end module Kure # まだ Kure::Test が無いのでトップレベルの Test が呼ばれる puts Test.new.hello # => Test#hello end # Kure モジュール内の Test クラス module Kure class Test def hello "Kure::Test#hello" end end end # 普通にトップレベルの Test が呼ばれる puts Test.new.hello # => Test#hello module Kure # Kure::Test が既に定義されているので Kure モジュール内で呼ばれた # Test クラスは Kure::Test が呼ばれる puts Test.new.hello # => Kure::Test#hello # :: を左に付けてトップレベルの Test クラスを明示的に呼ぶ puts ::Test.new.hello # => Test#hello end