class GraphiteAPI::Cache::Memory
Public Class Methods
new(options)
click to toggle source
# File lib/graphite-api/cache/memory.rb, line 6 def initialize options Zscheduler.every(120) { clean(options[:cache]) } end
Public Instance Methods
get(time, key)
click to toggle source
# File lib/graphite-api/cache/memory.rb, line 10 def get time, key cache[time.to_i][key] end
incr(time, key, value)
click to toggle source
# File lib/graphite-api/cache/memory.rb, line 18 def incr time, key, value set(time, key, value.to_f + get(time, key)) end
set(time, key, value)
click to toggle source
# File lib/graphite-api/cache/memory.rb, line 14 def set time, key, value cache[time.to_i][key] = value.to_f end
Private Instance Methods
cache()
click to toggle source
# File lib/graphite-api/cache/memory.rb, line 24 def cache @cache ||= nested_zero_hash end
clean(max_age)
click to toggle source
# File lib/graphite-api/cache/memory.rb, line 28 def clean max_age debug [:MemoryCache, :before_clean, cache] cache.delete_if {|t,k| Time.now.to_i - t > max_age } debug [:MemoryCache, :after_clean, cache] end