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