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