mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
25 lines
No EOL
455 B
Ruby
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 |