class RedisClient::Multi

Public Class Methods

new(command_builder) click to toggle source
# File lib/redis_client.rb, line 524
def initialize(command_builder)
  @command_builder = command_builder
  @size = 0
  @commands = []
  @blocks = nil
  @retryable = true
end

Public Instance Methods

_blocks() click to toggle source
# File lib/redis_client.rb, line 566
def _blocks
  @blocks
end
_coerce!(results) click to toggle source
# File lib/redis_client.rb, line 586
def _coerce!(results)
  results&.each_with_index do |result, index|
    if result.is_a?(CommandError)
      result._set_command(@commands[index + 1])
      raise result
    end

    if @blocks && block = @blocks[index + 1]
      results[index] = block.call(result)
    end
  end

  results
end
_commands() click to toggle source
# File lib/redis_client.rb, line 562
def _commands
  @commands
end
_empty?() click to toggle source
# File lib/redis_client.rb, line 574
def _empty?
  @commands.size <= 2
end
_retryable?() click to toggle source
# File lib/redis_client.rb, line 582
def _retryable?
  @retryable
end
_size() click to toggle source
# File lib/redis_client.rb, line 570
def _size
  @commands.size
end
_timeouts() click to toggle source
# File lib/redis_client.rb, line 578
def _timeouts
  nil
end
call(*command, **kwargs, &block) click to toggle source
# File lib/redis_client.rb, line 532
def call(*command, **kwargs, &block)
  command = @command_builder.generate(command, kwargs)
  (@blocks ||= [])[@commands.size] = block if block_given?
  @commands << command
  nil
end
call_once(*command, **kwargs, &block) click to toggle source
# File lib/redis_client.rb, line 546
def call_once(*command, **kwargs, &block)
  command = @command_builder.generate(command, kwargs)
  @retryable = false
  (@blocks ||= [])[@commands.size] = block if block_given?
  @commands << command
  nil
end
call_once_v(command, &block) click to toggle source
# File lib/redis_client.rb, line 554
def call_once_v(command, &block)
  command = @command_builder.generate(command)
  @retryable = false
  (@blocks ||= [])[@commands.size] = block if block_given?
  @commands << command
  nil
end
call_v(command, &block) click to toggle source
# File lib/redis_client.rb, line 539
def call_v(command, &block)
  command = @command_builder.generate(command)
  (@blocks ||= [])[@commands.size] = block if block_given?
  @commands << command
  nil
end