Class: ActiveMemoize::Cache

Inherits:
Object
  • Object
show all
Defined in:
lib/active_memoize/cache.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCache

Returns a new instance of Cache.



10
11
12
# File 'lib/active_memoize/cache.rb', line 10

def initialize
  @cache = {}
end

Instance Attribute Details

#cacheObject (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

#clearObject



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

#eachObject

: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:

Returns:

  • (Boolean)


36
37
38
# File 'lib/active_memoize/cache.rb', line 36

def empty?
  @cache.empty?
end

#key?(key) ⇒ Boolean Also known as: hit?

Returns:

  • (Boolean)


42
43
44
# File 'lib/active_memoize/cache.rb', line 42

def key?(key)
  @cache.key?(key)
end

#keysObject



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?

Returns:

  • (Boolean)


66
67
68
# File 'lib/active_memoize/cache.rb', line 66

def present?
  !blank?
end

#sizeObject



72
73
74
# File 'lib/active_memoize/cache.rb', line 72

def size
  @cache.size
end

#to_hashObject Also known as: as_json, hits



76
77
78
# File 'lib/active_memoize/cache.rb', line 76

def to_hash
  @cache
end

#valuesObject



83
84
85
# File 'lib/active_memoize/cache.rb', line 83

def values
  @cache.values
end