Ruby Tips!

RubyのTipsを紹介します

特異メソッドを定義する

Rubyではクラスだけなくあるオブジェクトに固有なメソッドを定義することができる。
そのようなメソッドのことを特異メソッドと呼ぶ。
以下はobjに特異メソッドsingleton_methodを定義する例である。
特異メソッドは通常のメソッドと同じように呼び出すことができる。

obj = Object.new

def obj.singleton_method()
  # do something
end

obj.singleton_method

複数の特異メソッドを定義する場合は、以下のように書くことができる。
このような書き方を、objの特異クラスを開く、と呼ぶ場合もある。

obj = Object.new

class << obj
  def singleton_method1()
    # do something
  end

  def singleton_method2()
    # do something
  end
end

obj.singleton_method1
obj.singleton_method2