neocities/models/simple_cache.rb
2014-04-23 15:07:00 -07:00

25 lines
No EOL
455 B
Ruby

require 'thread'
require 'time'
module SimpleCache
@cache = {}
@semaphore = Mutex.new
class << self
def store(name, value, timeout=30)
@semaphore.synchronize {
@cache[name] = {value: value, expires_at: Time.now+timeout}
}
value
end
def get(name)
@cache[name][:value]
end
def expired?(name)
return false if @cache[name] && @cache[name][:expires_at] > Time.now
true
end
end
end