Class: Crufty::Context
- Inherits:
-
Object
- Object
- Crufty::Context
- Defined in:
- lib/crufty/context.rb
Instance Attribute Summary collapse
-
#backtrace ⇒ Object
readonly
Returns the value of attribute backtrace.
-
#best_by ⇒ Object
readonly
Returns the value of attribute best_by.
-
#expires ⇒ Object
readonly
Returns the value of attribute expires.
-
#invoke ⇒ Object
readonly
Returns the value of attribute invoke.
-
#invoked_at ⇒ Object
readonly
Returns the value of attribute invoked_at.
Instance Method Summary collapse
- #expired? ⇒ Boolean
- #fresh? ⇒ Boolean
-
#initialize(best_by, expires, backtrace = nil) ⇒ Context
constructor
A new instance of Context.
- #stale? ⇒ Boolean
- #state ⇒ Object
Constructor Details
#initialize(best_by, expires, backtrace = nil) ⇒ Context
Returns a new instance of Context.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# 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 |
Instance Attribute Details
#backtrace ⇒ Object (readonly)
Returns the value of attribute backtrace.
5 6 7 |
# File 'lib/crufty/context.rb', line 5 def backtrace @backtrace end |
#best_by ⇒ Object (readonly)
Returns the value of attribute best_by.
5 6 7 |
# File 'lib/crufty/context.rb', line 5 def best_by @best_by end |
#expires ⇒ Object (readonly)
Returns the value of attribute expires.
5 6 7 |
# File 'lib/crufty/context.rb', line 5 def expires @expires end |
#invoke ⇒ Object (readonly)
Returns the value of attribute invoke.
5 6 7 |
# File 'lib/crufty/context.rb', line 5 def invoke @invoke end |
#invoked_at ⇒ Object (readonly)
Returns the value of attribute invoked_at.
5 6 7 |
# File 'lib/crufty/context.rb', line 5 def invoked_at @invoked_at end |
Instance Method Details
#expired? ⇒ Boolean
39 40 41 42 43 44 45 |
# File 'lib/crufty/context.rb', line 39 def expired? if @expires.nil? false else @invoked_at >= @expires end end |
#fresh? ⇒ Boolean
27 28 29 |
# File 'lib/crufty/context.rb', line 27 def fresh? !stale? && !expired? end |
#stale? ⇒ Boolean
31 32 33 34 35 36 37 |
# File 'lib/crufty/context.rb', line 31 def stale? if @best_by.nil? true else @invoked_at >= @best_by end end |
#state ⇒ Object
23 24 25 |
# File 'lib/crufty/context.rb', line 23 def state @state ||= (expired? ? :expired : (stale? ? :stale : :fresh)) end |