2011年12月 3日

[ruby-list:48561] Re: ruby 1.9.3p0 の private_constant

神谷です。


2011年12月3日18:00 Yusuke Endoh <mame@xxxxx>:
> バグです。修正します。ありがとうございます。

こちらこそありがとうございます。
念頭に置いて、次のリリースを待ちます。


>
> 私もどちらもありうると思いますが、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か警告」ということであれば、自分の中でしっくりきます。

丁寧な御回答を頂き、有難うございました。

--
神谷 健一


投稿者 xml-rpc : 2011年12月 3日 23:23
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/107578
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。