Hpricotで良いなと思ってたのが、"クラス名と同名の関数にデフォルト動作をさせる"というやつ。

class Foo
  def initialize
    puts "new"
    # code...
  end

  def fetch
    puts "fetch"
    # code...
  end

  def send
    puts "send"
    # code...
  end
end

def Foo
  foo = Foo.new
  foo.fetch
  foo.send
end

こんな感じでFooクラスにFoo関数を作っておく。

% irb -r foo
>> Foo()
new
fetch
send
=> nil

普通こういう場合Foo.run!とかを用意するけど、クラス名をとりあえず実行してみればいいというのは楽。変数と関数の2値を持てるところを利用してるんだけどシンプルで好きだ。

このパターンの名前みたいのあるのかな?

Comments


Option