[ruby-list:48561] Re: ruby 1.9.3p0 の private_constant
From:
Kenichi Kamiya <kachick1@...>
Date:
2011-12-03 14:23:04 UTC
List:
ruby-list #48561
神谷です。 2011年12月3日18:00 Yusuke Endoh <mame@tsg.ne.jp>: > バグです。修正します。ありがとうございます。 こちらこそありがとうございます。 念頭に置いて、次のリリースを待ちます。 > > 私もどちらもありうると思いますが、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か警告」ということであれば、自分の中でしっくりきます。 丁寧な御回答を頂き、有難うございました。 -- 神谷 健一