Klasa JournalEntry ma atrybut category - do wyboru z dość sporej liczby wartości oraz opis - wyznaczany na podstawie kategorii i ew. innych parametrów.
def summary
case category
when 1 then 'opis'
when 2 then "Opis z opcjami #{options[:x]}"
end
normalnei nie zalecałbym takiego rozwiązania ze względu na to że nie można wtedy używać dziedziczenia, albo nadpisać części metod. Ale jeżeli metody wyglądają naprawdę w ten sposób to może to być opcja.
Okej. Rozwiązanie z localami bije wszystkie moje. O ile nie ma innych wymagań to ja bym wybrał rozwiązanie Krzystofa. Jest niesamowicie eleganckie i pozwala definiować kolejne opisy niezależnie od kodu.