module TmpCache::Prototype::Methods

Public Instance Methods

cache() click to toggle source
# File lib/tmp_cache/cache.rb, line 16
def cache
  @cache ||= Hash.new{|h,k| h = {:expire => 0, :value => nil}}
end
each() { |k, v| ... } click to toggle source
# File lib/tmp_cache/cache.rb, line 58
def each(&block)
  gc
  cache.each do |k,v|
    yield k, v[:value]
  end
end
gc() click to toggle source
# File lib/tmp_cache/cache.rb, line 36
def gc
  cache.each do |k,c|
    if c[:expire] != nil and Time.now.to_i > c[:expire].to_i
      cache.delete k
    end
  end
end
get(key) click to toggle source
# File lib/tmp_cache/cache.rb, line 28
def get(key)
  if cache[key][:expire] < Time.now.to_i
    return cache[key][:value] = nil
  else
    return cache[key][:value]
  end
end
keys() click to toggle source
# File lib/tmp_cache/cache.rb, line 48
def keys
  gc
  cache.keys
end
reset() click to toggle source
# File lib/tmp_cache/cache.rb, line 44
def reset
  @cache = nil
end
set(key, value, expire=nil) click to toggle source
# File lib/tmp_cache/cache.rb, line 20
def set(key, value, expire=nil)
  cache[key] = {
    :value => value,
    :expire => expire ? Time.now.to_i+expire.to_i : nil
  }
  value
end
values() click to toggle source
# File lib/tmp_cache/cache.rb, line 53
def values
  gc
  cache.values.map{|v| v[:value] }
end