class MetalArchives::Cache::Redis

Redis-backed cache

Public Class Methods

new(options = {}) click to toggle source
Calls superclass method MetalArchives::Cache::Base::new
# File lib/metal_archives/cache/redis.rb, line 11
def initialize(options = {})
  super

  # Default TTL is 1 month
  options[:ttl] ||= (30 * 24 * 60 * 60)
end

Public Instance Methods

[](key) click to toggle source
# File lib/metal_archives/cache/redis.rb, line 18
def [](key)
  redis.get cache_key_for(key)
end
[]=(key, value) click to toggle source
# File lib/metal_archives/cache/redis.rb, line 22
def []=(key, value)
  redis.set cache_key_for(key), value, ex: options[:ttl]
end
clear() click to toggle source
# File lib/metal_archives/cache/redis.rb, line 26
def clear
  redis.keys(cache_key_for("*")).each { |key| redis.del key }
end
delete(key) click to toggle source
# File lib/metal_archives/cache/redis.rb, line 34
def delete(key)
  redis.del cache_key_for(key)
end
include?(key) click to toggle source
# File lib/metal_archives/cache/redis.rb, line 30
def include?(key)
  redis.exists? cache_key_for(key)
end

Private Instance Methods

cache_key_for(key) click to toggle source
# File lib/metal_archives/cache/redis.rb, line 40
def cache_key_for(key)
  "metal_archives.cache.#{key}"
end
redis() click to toggle source
# File lib/metal_archives/cache/redis.rb, line 44
def redis
  @redis ||= ::Redis.new(**options.except(:ttl))
end