田舎の技術者が奮闘中

php ruby node.js javascript などのスクリプト言語とサーバー(Chef、Vagrant)に関して書きます。

ruby クラスメソッドを一気に定義する

毎回メソッドに対してselfってやつをつけてたんですけど、一括で定義する方法があったので、メモっておきます。

class Hoge
  class << self
    def method_1
      print "method_1"
    end

    def method_2
      print "method_2"
    end
  end
end

Hoge.method_1 #method_1
Hoge.method_2 #method_2

実はこれ特異クラスなんですけれど、自分自身を特異クラスとして宣言しているから、結局はクラスメソッドになるってことですね。便利なのか複雑なのか・・・