class Kredis::Types::Proxy

Attributes

key[RW]
redis[RW]

Public Class Methods

new(redis, key, **options) click to toggle source
# File lib/kredis/types/proxy.rb, line 7
def initialize(redis, key, **options)
  @redis, @key = redis, key
  options.each { |key, value| send("#{key}=", value) }
end

Public Instance Methods

method_missing(method, *args, **kwargs) click to toggle source
# File lib/kredis/types/proxy.rb, line 16
def method_missing(method, *args, **kwargs)
  Kredis.instrument :proxy, **log_message(method, *args, **kwargs) do
    failsafe do
      redis.public_send method, key, *args, **kwargs
    end
  end
end
multi(...) click to toggle source
# File lib/kredis/types/proxy.rb, line 12
def multi(...)
  redis.multi(...)
end

Private Instance Methods

log_message(method, *args, **kwargs) click to toggle source
# File lib/kredis/types/proxy.rb, line 25
def log_message(method, *args, **kwargs)
  args      = args.flatten.reject(&:blank?).presence
  kwargs    = kwargs.reject { |_k, v| v.blank? }.presence

  { message: "#{method.upcase} #{key} #{args&.inspect} #{kwargs&.inspect}".chomp }
end