Moje pierwsze spotkanie z metaprogramingiem skończyło się powstaniem tego małego gema.
W skrócie, zamiast:
(fruit.color == :red && fruit.name == :apple) || (fruit.color == :yellow && fruit.name == :banana)
napisz:
fruit.is.red.apple.OR.yellow.banana?
Zapraszam do potestowania i podzielenia się komentarzami: http://rubygems.org/gems/fluent_conditions (homepage prowadzi do dokumentacji na githubie)