遠藤です。

2011年12月3日16:57 Kenichi Kamiya <kachick1 / gmail.com>:
> <質問>
> この動きは、仕様通りと考えてよろしいでしょうか?
> 引数として受け取る以上、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 / tsg.ne.jp>