class Zipcoder::Cacher::Redis

Public Class Methods

_create_redis_client(**kwargs) click to toggle source

This is here for stubbing

# File lib/zipcoder/cacher/redis.rb, line 10
def self._create_redis_client(**kwargs)
  ::Redis.new(**kwargs)
end

Public Instance Methods

_empty_cache() click to toggle source
# File lib/zipcoder/cacher/redis.rb, line 18
def _empty_cache
  keys = @redis.keys("#{KEY_BASE}*")
  @redis.del(*keys) unless keys.empty?
end
_init_cache(**kwargs) click to toggle source
# File lib/zipcoder/cacher/redis.rb, line 14
def _init_cache(**kwargs)
  @redis = self.class._create_redis_client(**kwargs)
end
_iterate_keys(**kwargs, &block) click to toggle source
# File lib/zipcoder/cacher/redis.rb, line 33
def _iterate_keys(**kwargs, &block)
  return if block == nil

  start_with = kwargs[:start_with] || KEY_BASE

  # Redis "keys" command will pre-filter the keys for us so no
  # need for "if" statement
  @redis.keys("#{start_with}*").each do |key|
    block.call(key)
  end
end
_read_cache(key) click to toggle source
# File lib/zipcoder/cacher/redis.rb, line 28
def _read_cache(key)
  data = @redis.get(key)
  data == nil ? nil : JSON.parse(data, :symbolize_names => true)
end
_write_cache(key, value) click to toggle source
# File lib/zipcoder/cacher/redis.rb, line 23
def _write_cache(key, value)
  return if value == nil
  @redis.set(key, value.to_json)
end