Sha256: 69596ed3f1ee27192f1950853ad32ad379e3c6599bb559ba8c31ba98abc4a31a

Contents?: true

Size: 575 Bytes

Versions: 3

Compression:

Stored size: 575 Bytes

Contents

require "active_support/core_ext/module/delegation"

class Kredis::Types::Proxying
  attr_accessor :proxy, :key

  def self.proxying(*commands)
    delegate *commands, to: :proxy
  end

  def initialize(redis, key, **options)
    @key = key
    @proxy = Kredis::Types::Proxy.new(redis, key)
    options.each { |key, value| send("#{key}=", value) }
  end

  def failsafe(returning: nil, &block)
    proxy.suppress_failsafe_with(returning: returning, &block)
  end

  private
    delegate :type_to_string, :string_to_type, :types_to_strings, :strings_to_types, to: :Kredis
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kredis-1.4.0 lib/kredis/types/proxying.rb
kredis-1.3.0.1 lib/kredis/types/proxying.rb
kredis-1.3.0 lib/kredis/types/proxying.rb