ziggy ===== Cache any method on any class using Rails.cache Install ------- $ gem sources -a http://gems.github.com (you only have to do this once) $ sudo gem install opsb-ziggy Introduction ------------ ziggy will cache methods and then expire them. The results from method invocations are stored in and read from the Rails.cache using Rails.cache.write(key, value) and Rails.cache.read(key). ### Cache a method class TwitterUser include Ziggy cached :timeline def timeline twitter_client.timeline end ... end ### Cache many methods class TwitterUser include Ziggy cached :timeline, :direct_messages def timeline twitter_client.timeline end def direct_messages twitter_client.direct_messages end ... end ### expire_after The default expire_after time is 2.5.minutes, to customise do class TwitterUser include Ziggy cached :timeline, :expire_after => 1.5.minutes def timeline twitter_client.timeline end ... end ### Customise key The method name and arguments are always used as the base of the cache key. You can customise the start of the cache key using a block. class TwitterUser include Ziggy cached :timeline { |twitterUser| twitterUser.screen_name } def timeline twitter_client.timeline end ... end ### Different options for different methods class TwitterUser include Ziggy cached :timeline, :expire_after => 1.minutes { |twitterUser| twitterUser.screen_name } cached :direct_messages, :expire_after => 10.minutes { |twitterUser| twitterUser.screen_name } def timeline twitter_client.timeline end def direct_messages twitter_client.direct_messages end ... end ### Disable ziggy Perhaps you want to disable ziggy for tests? Add the following to your test.rb Ziggy::active = false