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ć?