class StatsLite::Cache
Attributes
map[R]
Public Class Methods
_gey_key(name)
click to toggle source
# File lib/stats_lite/cache.rb, line 47 def _gey_key(name) @cache.map[name] end
_handle_expires(name, proc)
click to toggle source
# File lib/stats_lite/cache.rb, line 38 def _handle_expires(name, proc) @cache.map[name] = { timestamp: Time.now, value: proc.call } @cache.map[name][:value] end
_set_key(name, proc)
click to toggle source
# File lib/stats_lite/cache.rb, line 43 def _set_key(name, proc) @cache.map[name] = proc.call end
fetch(name, proc, expires_s)
click to toggle source
# File lib/stats_lite/cache.rb, line 12 def fetch(name, proc, expires_s) @cache ||= new existing = @cache.map[name] if @cache.map.has_key?(name) if existing if existing.is_a?(Hash) && existing.has_key?(:timestamp) if Time.now - existing[:timestamp] > expires_s _handle_expires(name, proc) else existing[:value] end elsif expires_s > 0 _handle_expires(name, proc) else _gey_key(name) end else if expires_s > 0 _handle_expires(name, proc) else _set_key(name, proc) end end end
new()
click to toggle source
# File lib/stats_lite/cache.rb, line 7 def initialize @map = {} end