Class: Hoodie::Stash::Cache
Overview
Key/value cache store
Instance Attribute Summary collapse
-
#:store(: store) ⇒ Stash::DiskStore
readonly
Location of Stash::DiskStore store.
-
#store ⇒ Object
readonly
Returns the value of attribute store.
Instance Method Summary collapse
-
#[](key = nil) ⇒ Hash, ...
Retrieves the value for a given key, if nothing is set, returns KeyError.
-
#cache(key = nil, &code) ⇒ Hash, ...
Retrieves the value for a given key, if nothing is set, run the code, cache the result, and return it.
-
#clear!(key = nil) ⇒ Object
Clear the whole stash store or the value of a key.
-
#include?(key = nil) ⇒ Boolean
return a boolean indicating presence of the given key in the store.
-
#initialize(params = {}) ⇒ Cache
constructor
Initializes a new empty store.
-
#size ⇒ Fixnum
return the size of the store as an integer.
Constructor Details
Instance Attribute Details
#:store(: store) ⇒ Stash::DiskStore (readonly)
Returns location of Stash::DiskStore store.
52 |
# File 'lib/hoodie/stash.rb', line 52 attr_reader :store |
#store ⇒ Object (readonly)
Returns the value of attribute store.
52 53 54 |
# File 'lib/hoodie/stash.rb', line 52 def store @store end |
Instance Method Details
#[](key = nil) ⇒ Hash, ...
Retrieves the value for a given key, if nothing is set, returns KeyError
82 83 84 85 86 |
# File 'lib/hoodie/stash.rb', line 82 def [](key = nil) key ||= Stash.caller_name fail KeyError, 'Key not cached' unless include? key.to_sym @store[key.to_sym] end |
#cache(key = nil, &code) ⇒ Hash, ...
Retrieves the value for a given key, if nothing is set, run the code, cache the result, and return it
96 97 98 99 |
# File 'lib/hoodie/stash.rb', line 96 def cache(key = nil, &code) key ||= Stash.caller_name @store[key.to_sym] ||= code.call end |
#clear!(key = nil) ⇒ Object
Clear the whole stash store or the value of a key
clear.
68 69 70 71 |
# File 'lib/hoodie/stash.rb', line 68 def clear!(key = nil) key = key.to_sym unless key.nil? @store.clear! key end |
#include?(key = nil) ⇒ Boolean
return a boolean indicating presence of the given key in the store
115 116 117 118 |
# File 'lib/hoodie/stash.rb', line 115 def include?(key = nil) key ||= Stash.caller_name @store.include? key.to_sym end |
#size ⇒ Fixnum
return the size of the store as an integer
105 106 107 |
# File 'lib/hoodie/stash.rb', line 105 def size @store.size end |