Module: HashCache::Accessible

Included in:
LRU, TTL
Defined in:
lib/hash_cache/accessible.rb

Instance Method Summary collapse

Instance Method Details

#fetch(key, default = (default_omitted = true; nil)) ⇒ Object

Raises:

  • (KeyError)


4
5
6
7
8
9
# File 'lib/hash_cache/accessible.rb', line 4

def fetch(key, default = (default_omitted = true; nil))
  return self[key]  if data.has_key?(key)
  return yield(key) if block_given?
  return default    unless default_omitted
  raise KeyError
end

#memoize(key) ⇒ Object

Raises:

  • (ArgumentError)


11
12
13
14
15
16
# File 'lib/hash_cache/accessible.rb', line 11

def memoize(key)
  raise ArgumentError, "Block is required" unless block_given?
  self[key] # triggers flush or refresh if expired
  return self[key]       if data.has_key?(key)
  self[key] = yield(key) if block_given?
end