Ruby Tips!

RubyのTipsを紹介します

メソッドが定義されていなければメソッドを定義する

クラスにあるメソッドが定義されていない場合にのみ、そのメソッドをモンキーパッチで定義するには、以下のようにする。method_defined?はクラスにメソッドが定義されているかを確認するメソッドだ。

if Clazz.method_defined?(:method)
  class Clazz
    def method
      # do something
    end
  end
end

こうしておくと、もしメソッドが定義されていた場合に、意図せずしてメソッドを再定義するのを避けることができる。この方法は、Rubyやライブラリのバージョンが古く、新しいバージョンに存在するメソッドを、自分で定義する場合にも利用できる。