class Sfn::Cache::Stamped

Wrapper to auto stamp values

Public Class Methods

new(name, base, cache) click to toggle source

Create new instance

@param name [String, Symbol] @param base [Redis::Value, LocalValue] @param cache [Cache]

# File lib/sfn/cache.rb, line 348
def initialize(name, base, cache)
  @name = name.to_sym
  @base = base
  @cache = cache
end

Public Instance Methods

restamp!() click to toggle source

Force a timestamp update

# File lib/sfn/cache.rb, line 379
def restamp!
  self.value = value
end
set?() click to toggle source

@return [TrueClass, FalseClass] is value set

# File lib/sfn/cache.rb, line 369
def set?
  @base.value.is_a?(Hash)
end
stamp() click to toggle source

@return [Float] timestamp of last set (or 0.0 if unset)

# File lib/sfn/cache.rb, line 374
def stamp
  set? ? @base.value[:stamp] : 0.0
end
update_allowed?() click to toggle source

@return [TrueClass, FalseClass] update is allowed based on stamp and limits

# File lib/sfn/cache.rb, line 384
def update_allowed?
  !set? || @cache.time_check_allow?(@name, @base.value[:stamp])
end
value() click to toggle source

@return [Object] value stored

# File lib/sfn/cache.rb, line 355
def value
  @base.value[:value] if set?
end
value=(v) click to toggle source

Store value and update timestamp

@param v [Object] value @return [Object]

# File lib/sfn/cache.rb, line 363
def value=(v)
  @base.value = {:stamp => Time.now.to_f, :value => v}
  v
end