Ruby: Case using object

Есть ли способ неявно вызывать методы объекта заявление case? IE:

class Foo

  def bar
    1
  end

  def baz
    ...
  end

end

То, что я хотел бы сделать, это что-то вроде этого ...

foo = Foo.new
case foo
when .bar==1 then "something"
when .bar==2 then "something else"
when .baz==3 then "another thing"
end

... где операторы «когда» оценивают возврат методов для объекта case. Возможна ли такая структура? Я не смог понять синтаксис, если да ...

6
задан Andrew 13 July 2011 в 03:38
поделиться