Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

素敵な無名クラスはメソッドチェインの実装やI/O整合性維持に役立つ

def noname_class 
  Class.new do |cl|
    def cl.zero
      0
    end
    def cl.now
      Time.now
    end
  end
end
=> nil

noname_class  #=> #<Class:0x007f9ba3056dd8>

noname_class.now #=> 2014-02-20 23:03:58 +0900

noname_class.zero #=> 0

使いどころ

  • 本来あり得ないメソッドチェインを実装可能
  • わざわざ新造クラスを作りたくないが、然りとて似たクラスとのI/Oを変更したく無い場合