• Download Gist
ActiveSupport::Cache::MemoryStoreWithExpiry
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
module ActiveSupport
module Cache
class MemoryStoreWithExpiry < MemoryStore
 
def initialize
super
@times = {}
end
 
def write(name, value, options = nil)
if options && options[:expires_in]
@times[name] = { :cached_at => Time.now, :expires_in => options[:expires_in] }
end
super
end
 
def read(name, options = nil)
return if expired?(name)
super
end
 
private
 
def expired?(name)
return false unless @times[name]
(Time.now - @times[name][:cached_at]) > @times[name][:expires_in]
end
end
end
end

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.