From: Kenichi Kamiya Date: 2011-12-03T23:23:04+09:00 Subject: [ruby-list:48561] Re: ruby 1.9.3p0 の private_constant 神谷です。 2011年12月3日18:00 Yusuke Endoh : > バグです。修正します。ありがとうございます。 こちらこそありがとうございます。 念頭に置いて、次のリリースを待ちます。 > > 私もどちらもありうると思いますが、private にしなかったのは意図的です。 > private や module_function より後から入ったと思われる private_ > class_method がその記法をサポートしていなかったので、最近はむやみに > スコープに状態を持たせない流儀なのかな、と考えたためです。 > > class Foo > private_class_method > > def self.foo > end > end > Foo.foo # 呼べる > > 両方共サポートすべき!と思われるなら、チケットをきってください。 なるほど、たしかにprivate_class_methodの挙動は把握していませんでした。 納得の理由です。 強く望むまではまだどちらのメソッドも使い込んでいないので、もう少し試してみようと思います。 > > 引数 0 個の時に何も言わないのも private_class_method たちと同じです > が、不親切すぎる気もするので、とりあえず警告を出すようにしましょうか。 > > $VERBOSE = true > module Foo > public_class_method > public_constant > end > > -:3: warning: public_class_method with no argument has no effect > -:4: warning: public_constant with no argument has no effect > これは非常に嬉しいです。 「引数0が意味を持たない場合はArgumentErrorか警告」ということであれば、自分の中でしっくりきます。 丁寧な御回答を頂き、有難うございました。 -- 神谷 健一