foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

Ruby でプライベート クラス メソッドを書く

以下のようにしてみたらエラーになった。

class Class1
  private :new  # NameError
end

特異メソッドで書いてみたら、一応できた。

class Class1
end

class << Class1
  private :new
end

Class1.new  # NoMethodError

でも書き方がスマートじゃないように感る。
と思ったら、まさにピッタリなのがあった。

class Class1
  private_class_method :new
end

Class1.new  # NoMethodError

これは簡単♪