BasicObject を継承したクラスで include する
BasicObject を継承したクラスで include する
BasicObject を継承したクラスで include を行いたかったのですが、次のようなコードではエラーになりました。
module Test def test 10 end end class X < BasicObject include Test # error: `<class:X>': uninitialized constant X::Test (NameError) end
解決
モジュール名の先頭に ::
をつけると解決しました。
module Test def test 10 end end class X < BasicObject include ::Test end p X.new.test # => 10
なんでエラーになっているのかわからなくて2時間ぐらい悩んでいた…。