Cachowanie wywołania metody

Witam.

Piszę projekt w czystym Ruby. Mam kilka metod w kilku różnych klasach, które wykonują się bardzo długo. Konstrukcja programu wymusza na mnie uruchamianie tych kłopotliwych metod w krótkich odstępach czasu z różnych miejsc w programie.

Mogę oczywiście w każdej takiej metodzie pisać kod sprawdzający czas ostatniego jej wywołania i jeżeli różnica z czasem bieżącym nie przekracza jakiejś ustalonej wcześniej wartości zwracać zapamiętane wcześniej dane, ale musiałbym wtedy umieścić praktycznie taki sam kod w wielu metodach. Chciałbym więc wprowadzić jakieś sprytne cachowanie. Przeszukałem sieć w poszukiwaniu czegoś pomocnego, ale wszystko co znalazłem, to jakiś wygasły projekt, który nie spełnia moich oczekiwań.

Marzy mi coś takiego:

[code]class MojaKlasa
cache :get_time, 20 #cachowanie metody get_time na 20 sek.

def get_time
Time.now
end
end[/code]
Czy da się osiągnąć taką funkcjonalność, ewentualnie jakie inne rozwiązanie mogę zastosować?

http://ideaharbor.org/notes/technical/ruby-on-rails-method-caching/

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/305320

Pierwszy link znalazłem już wcześniej, ale wydawało mi się, że projekt został zamknięty, bo część linków nie działała.
Dzięki Wam za pomoc.