Method: Tml::CacheAdapters::Memcache#fetch

Defined in:
lib/tml/cache_adapters/memcache.rb

#fetch(key, opts = {}) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/tml/cache_adapters/memcache.rb', line 51

def fetch(key, opts = {})
  data = @cache.get(versioned_key(key, opts))
  if data
    info("Cache hit: #{key}")
    return data
  end

  info("Cache miss: #{key}")

  return nil unless block_given?

  data = yield

  store(key, data)

  data
rescue Exception => ex
  warn("#{ex.message}: #{key}")
  return nil unless block_given?
  yield
end