class Memory
Public Class Methods
new(config={})
click to toggle source
Construct a new Memory
cache object.
param
string dir
# File lib/handset_detection/cache/memory.rb, line 37 def initialize(config={}) @thread_safe = (config.include?('cache') and config['cache'].include?('memory') and config['cache']['memory']['thread_safe']) ? true : false make_cache unless defined?(@@c) end
Public Instance Methods
del(key)
click to toggle source
Delete key
# File lib/handset_detection/cache/memory.rb, line 59 def del(key) @@c.delete key true end
flush()
click to toggle source
Flush cache
# File lib/handset_detection/cache/memory.rb, line 65 def flush make_cache true end
get(key)
click to toggle source
Get key
# File lib/handset_detection/cache/memory.rb, line 44 def get(key) data, exp = @@c[key] return nil if exp.nil? or Time.now.to_i > exp data end
make_cache()
click to toggle source
Initialize the cache data structure
# File lib/handset_detection/cache/memory.rb, line 72 def make_cache if !@thread_safe @@c = {} elsif defined?(ThreadSafe) @@c = ThreadSafe::Hash.new else raise 'ThreadSafe is required to use the Memory cache.' end end
set(key, data, ttl)
click to toggle source
Set key
# File lib/handset_detection/cache/memory.rb, line 52 def set(key, data, ttl) @@c[key] = [data, Time.now.to_i + ttl] true end