2011年12月 3日

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

遠藤です。

2011年12月3日16:57 Kenichi Kamiya <kachick1@xxxxx>:
> <質問>
> この動きは、仕様通りと考えてよろしいでしょうか?
> 引数として受け取る以上、C2もprivateになってほしいなと感じました。

バグです。修正します。ありがとうございます。

> C4に関してはどちらもありうると思うのですが、個人的にはこっちもprivateになってほしいかなと

私もどちらもありうると思いますが、private にしなかったのは意図的です。
private や module_function より後から入ったと思われる private_
class_method がその記法をサポートしていなかったので、最近はむやみに
スコープに状態を持たせない流儀なのかな、と考えたためです。

class Foo
private_class_method

def self.foo
end
end
Foo.foo # 呼べる

両方共サポートすべき!と思われるなら、チケットをきってください。


引数 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

--
Yusuke Endoh <mame@xxxxx>


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




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