ネストしたクラスの他のクラスへの参照の仕方について
もち ー [Ruby]内部クラスと外部クラスの解
http://d.hatena.ne.jp/omochist/20061102/1162475536 より
で,ふと思ったのですが
Hoge.class_eval %{ … }
じゃなくて,わざわざ
- Hoge.class_eval %{ … }
って書いているのは,id:walf443さんの美学だったりするのかしら.美学重要よね.
一種の美学と言えば美学ですが、最近既存のクラスの再定義をするというのが流行ってるっぽいので
あのようなコードを書いた後で次のようなコードを追加すると動かなくなるのが嫌なわけです。
class Hoge class Piyo class Hoge end end end
:! ruby inner_outer_class.rb
fugahoge
inner_outer_class.rb:36:in `hogera': (eval):2:in `hogera': uninitialized class variable @@x in Hoge::Piyo::Hoge (NameError)
from inner_outer_class.rb:13:in `hoge'
from inner_outer_class.rb:61
ということで下へ参照するときは::つけませんが、上のクラスを参照する際は::をつけたほうがよいのかなーと思ってます。