diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2009-06-21 14:35:14 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2009-06-21 15:25:28 +0100 |
commit | b5775c2b3efb3ae5ef9074d26f6fc3e302a4f6f0 (patch) | |
tree | ab1ed892e04ed605c122e9a42a17286e63c5f1e8 /activesupport/lib/active_support/cache.rb | |
parent | 9f7eaea201b2f408d9effbf82f2731957e284adf (diff) | |
download | rails-b5775c2b3efb3ae5ef9074d26f6fc3e302a4f6f0.tar.gz rails-b5775c2b3efb3ae5ef9074d26f6fc3e302a4f6f0.tar.bz2 rails-b5775c2b3efb3ae5ef9074d26f6fc3e302a4f6f0.zip |
Add expiry support File cache store [#1693 state:resolved] [Roman Shterenzon, Pratik Naik]
Diffstat (limited to 'activesupport/lib/active_support/cache.rb')
-rw-r--r-- | activesupport/lib/active_support/cache.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/activesupport/lib/active_support/cache.rb b/activesupport/lib/active_support/cache.rb index feb6b1f2cf..192a82e74f 100644 --- a/activesupport/lib/active_support/cache.rb +++ b/activesupport/lib/active_support/cache.rb @@ -129,8 +129,8 @@ module ActiveSupport # # For example, MemCacheStore's #write method supports the +:expires_in+ # option, which tells the memcached server to automatically expire the - # cache item after a certain period. We can use this option with #fetch - # too: + # cache item after a certain period. This options is also supported by + # FileStore's #read method. We can use this option with #fetch too: # # cache = ActiveSupport::Cache::MemCacheStore.new # cache.fetch("foo", :force => true, :expires_in => 5.seconds) do @@ -169,6 +169,10 @@ module ActiveSupport # You may also specify additional options via the +options+ argument. # The specific cache store implementation will decide what to do with # +options+. + # + # For example, FileStore supports the +:expires_in+ option, which + # makes the method return nil for cache items older than the specified + # period. def read(key, options = nil) log("read", key, options) end @@ -223,6 +227,10 @@ module ActiveSupport end private + def expires_in(options) + (options && options[:expires_in]) || 0 + end + def log(operation, key, options) logger.debug("Cache #{operation}: #{key}#{options ? " (#{options.inspect})" : ""}") if logger && !@silence && !@logger_off end |