class Crufty::Context
Attributes
backtrace[R]
best_by[R]
expires[R]
invoke[R]
invoked_at[R]
Public Class Methods
new(best_by, expires, backtrace=nil)
click to toggle source
# File lib/crufty/context.rb, line 7 def initialize(best_by, expires, backtrace=nil) @invoke = true if datetimeish?(best_by) && datetimeish?(expires) @invoked_at = DateTime.now elsif timeish?(best_by) && timeish?(expires) @invoked_at = Time.now else raise ArgumentError, "Unexpected time params: #{best_by.class} and #{expires.class}" end @best_by = best_by @expires = expires @backtrace = backtrace end
Public Instance Methods
expired?()
click to toggle source
# File lib/crufty/context.rb, line 39 def expired? if @expires.nil? false else @invoked_at >= @expires end end
fresh?()
click to toggle source
# File lib/crufty/context.rb, line 27 def fresh? !stale? && !expired? end
stale?()
click to toggle source
# File lib/crufty/context.rb, line 31 def stale? if @best_by.nil? true else @invoked_at >= @best_by end end
state()
click to toggle source
# File lib/crufty/context.rb, line 23 def state @state ||= (expired? ? :expired : (stale? ? :stale : :fresh)) end
Private Instance Methods
datetimeish?(time)
click to toggle source
# File lib/crufty/context.rb, line 49 def datetimeish?(time) time.nil? || time.is_a?(DateTime) end
timeish?(time)
click to toggle source
# File lib/crufty/context.rb, line 53 def timeish?(time) time.nil? || time.is_a?(Time) end