class TimeHash
Constants
- ConfusionError
Attributes
automatic_expiration[RW]
times[R]
Public Class Methods
new(automatic_expiration = true)
click to toggle source
# File lib/time-hash.rb, line 8 def initialize(automatic_expiration = true) @automatic_expiration = automatic_expiration @times = {} @internal = {} end
Public Instance Methods
[]=(*args)
click to toggle source
# File lib/time-hash.rb, line 39 def []=(*args) raise(ConfusionError, "Don't use standard key-value assignment with TimeHashes, please.") end
expire!()
click to toggle source
# File lib/time-hash.rb, line 14 def expire! @times.clone.each do |key, times| if expired?(key) @internal.delete(key) @times.delete(key) end end self end
expired?(key)
click to toggle source
# File lib/time-hash.rb, line 24 def expired?(key) return true unless @times.has_key?(key) time, ttl = @times[key] Time.now - time > ttl end
put(key, value, ttl)
click to toggle source
# File lib/time-hash.rb, line 30 def put(key, value, ttl) # ms expire! response = (@internal[key] = value) @times[key] = [Time.now, ttl] response end