Module: ChromeData::Caching
- Included in:
- ChromeData
- Defined in:
- lib/chrome_data/caching.rb
Instance Method Summary collapse
-
#_cache_store ⇒ Object
Creates CacheStore object based on config.cache_store options reverse merges ‘chromedata’ namespace to options hash.
- #cache(key, &blk) ⇒ Object
Instance Method Details
#_cache_store ⇒ Object
Creates CacheStore object based on config.cache_store options reverse merges ‘chromedata’ namespace to options hash
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/chrome_data/caching.rb', line 4 def _cache_store return @@_cache_store if defined? @@_cache_store if ChromeData.config.cache_store cache_opts = { namespace: 'chromedata' } if ChromeData.config.cache_store.is_a?(Array) if ChromeData.config.cache_store.last.is_a?(Hash) ChromeData.config.cache_store.last.reverse_merge! cache_opts else ChromeData.config.cache_store << cache_opts end elsif ChromeData.config.cache_store.is_a?(Symbol) ChromeData.config.cache_store = [ChromeData.config.cache_store, cache_opts] end @@_cache_store = ActiveSupport::Cache.lookup_store(ChromeData.config.cache_store) end end |
#cache(key, &blk) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/chrome_data/caching.rb', line 24 def cache(key, &blk) if ChromeData._cache_store ChromeData._cache_store.fetch key, &blk else blk.call end end |