Module: RestGW2::Cache
- Defined in:
- lib/rest-gw2/server/cache.rb
Class Method Summary collapse
- .default(logger) ⇒ Object
- .lru_cache(logger) ⇒ Object
- .memcache(logger) ⇒ Object
- .pick(logger) ⇒ Object
Class Method Details
.default(logger) ⇒ Object
5 6 7 |
# File 'lib/rest-gw2/server/cache.rb', line 5 def default logger @cache ||= Cache.pick(logger) end |
.lru_cache(logger) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/rest-gw2/server/cache.rb', line 29 def lru_cache logger require 'lru_redux' logger.info("LRU cache size: 100") LruRedux::ThreadSafeCache.new(100) rescue LoadError => e logger.debug("Skip LRU cache because: #{e}") nil end |
.memcache(logger) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/rest-gw2/server/cache.rb', line 13 def memcache logger require 'dalli' client = Dalli::Client.new File.open(IO::NULL) do |null| Dalli.logger = Logger.new(null) client.alive! Dalli.logger = logger end logger.info("Memcached connected to #{client.version.keys.join(', ')}") client.extend(RestCore::DalliExtension) client rescue LoadError, Dalli::RingError => e logger.debug("Skip memcached because: #{e}") nil end |
.pick(logger) ⇒ Object
9 10 11 |
# File 'lib/rest-gw2/server/cache.rb', line 9 def pick logger memcache(logger) || lru_cache(logger) end |