2011年12月 3日

[ruby-list:48558] ruby 1.9.3p0 の private_constant

初めまして、神谷と申します。


<状況>
ruby 1.9.3p0 で、private_constantが次の挙動を取りました。

class My
C1 = 1

C2 = 2

private_constant :C1, :C2

C3 = 3

private_constant

C4 = 4
end

p My.constants #=> [:C2, :C3, :C4]
p My::C1 #=> in `<main>': private constant My::C1 referenced (NameError)
p My::C2 #=> 2
p My::C3 #=> 3
p My::C4 #=> 4

<質問>
この動きは、仕様通りと考えてよろしいでしょうか?
引数として受け取る以上、C2もprivateになってほしいなと感じました。
C4に関してはどちらもありうると思うのですが、個人的にはこっちもprivateになってほしいかなと
↓こんなイメージです。

p My.constants #=> [:C3]
p My::C1 #=> in `<main>': private constant My::C1 referenced (NameError)
p My::C2 #=> in `<main>': private constant My::C2 referenced (NameError)
p My::C3 #=> 3
p My::C4 #=> in `<main>': private constant My::C4 referenced (NameError)

既に出ていたり、ruby-dev側が望ましい話題であれば申し訳ありません。

--
神谷 健一


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




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