Class: ActiveMemoize::Cache
- Inherits:
-
Object
- Object
- ActiveMemoize::Cache
- Defined in:
- lib/active_memoize/cache.rb
Instance Attribute Summary collapse
-
#cache ⇒ Object
readonly
Returns the value of attribute cache.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, val) ⇒ Object
- #clear ⇒ Object
- #delete(key) ⇒ Object
-
#each ⇒ Object
:nocov:.
-
#empty? ⇒ Boolean
(also: #blank?)
:nocov:.
-
#initialize ⇒ Cache
constructor
A new instance of Cache.
- #key?(key) ⇒ Boolean (also: #hit?)
- #keys ⇒ Object
- #memoize(method_name = nil, &block) ⇒ Object
- #merge!(hash) ⇒ Object
- #present? ⇒ Boolean (also: #hits?)
- #size ⇒ Object
- #to_hash ⇒ Object (also: #as_json, #hits)
- #values ⇒ Object
Constructor Details
#initialize ⇒ Cache
Returns a new instance of Cache.
10 11 12 |
# File 'lib/active_memoize/cache.rb', line 10 def initialize @cache = {} end |
Instance Attribute Details
#cache ⇒ Object (readonly)
Returns the value of attribute cache.
8 9 10 |
# File 'lib/active_memoize/cache.rb', line 8 def cache @cache end |
Instance Method Details
#[](key) ⇒ Object
14 15 16 |
# File 'lib/active_memoize/cache.rb', line 14 def [](key) @cache[key] end |
#[]=(key, val) ⇒ Object
18 19 20 |
# File 'lib/active_memoize/cache.rb', line 18 def []=(key, val) @cache[key] = val end |
#clear ⇒ Object
22 23 24 |
# File 'lib/active_memoize/cache.rb', line 22 def clear @cache.clear end |
#delete(key) ⇒ Object
26 27 28 |
# File 'lib/active_memoize/cache.rb', line 26 def delete(key) @cache.delete(key) end |
#each ⇒ Object
:nocov:
31 32 33 |
# File 'lib/active_memoize/cache.rb', line 31 def each @cache.each { |key, val| yield(key, val) } end |
#empty? ⇒ Boolean Also known as: blank?
:nocov:
36 37 38 |
# File 'lib/active_memoize/cache.rb', line 36 def empty? @cache.empty? end |
#key?(key) ⇒ Boolean Also known as: hit?
42 43 44 |
# File 'lib/active_memoize/cache.rb', line 42 def key?(key) @cache.key?(key) end |
#keys ⇒ Object
48 49 50 |
# File 'lib/active_memoize/cache.rb', line 48 def keys @cache.keys end |
#memoize(method_name = nil, &block) ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'lib/active_memoize/cache.rb', line 56 def memoize(method_name = nil, &block) method_locals = caller_locals(block) method_name ||= caller_method method_name = "#{caller_method}:#{method_locals}" unless method_locals.nil? return @cache[method_name] if @cache.key?(method_name) @cache[method_name] = yield(block) end |
#merge!(hash) ⇒ Object
52 53 54 |
# File 'lib/active_memoize/cache.rb', line 52 def merge!(hash) @cache.merge!(hash) end |
#present? ⇒ Boolean Also known as: hits?
66 67 68 |
# File 'lib/active_memoize/cache.rb', line 66 def present? !blank? end |
#size ⇒ Object
72 73 74 |
# File 'lib/active_memoize/cache.rb', line 72 def size @cache.size end |
#to_hash ⇒ Object Also known as: as_json, hits
76 77 78 |
# File 'lib/active_memoize/cache.rb', line 76 def to_hash @cache end |
#values ⇒ Object
83 84 85 |
# File 'lib/active_memoize/cache.rb', line 83 def values @cache.values end |