class Phishin::Client::RedisCache

Public Class Methods

new(opts={}) click to toggle source
# File lib/phishin/client/cache.rb, line 80
def initialize(opts={})
  opts ||= {}
  @expires_in = opts.delete(:expires_in)
  url = opts.delete(:url)
  @client = Redis.new(url: url)
  cli = @client.client
  ::Phishin::Client::Client.logger.info "initialized phish.in cache Redis client redis://:REDACTED@#{cli.host}:#{cli.port}/#{cli.db}" if ::Phishin::Client::Client.logger
end

Public Instance Methods

delete(key) click to toggle source
# File lib/phishin/client/cache.rb, line 98
def delete(key)
  @client.del(namespace_key(key))
end
get(key) click to toggle source
# File lib/phishin/client/cache.rb, line 89
def get(key)
  @client.get(namespace_key(key))
end
set(key, value, ttl=nil) click to toggle source
# File lib/phishin/client/cache.rb, line 93
def set(key, value, ttl=nil)
  ttl ||= @expires_in
  @client.set(namespace_key(key), value, { ex: ttl })
end

Private Instance Methods

namespace_key(key) click to toggle source
# File lib/phishin/client/cache.rb, line 104
def namespace_key(key)
  format('%s:%s', Cache::CACHE_NAMESPACE, key)
end