class MultiRedis::Executor::OperationExecution

Attributes

final_results[R]

Public Class Methods

new(operation, args, shared_context) click to toggle source
# File lib/multi_redis/executor.rb, line 57
def initialize operation, args, shared_context

  @operation = operation
  @args = args

  @context = Context.new shared_context.redis, shared_context
  @steps = operation.steps

  @current_index = 0
end

Public Instance Methods

done?() click to toggle source
# File lib/multi_redis/executor.rb, line 68
def done?
  !current_step
end
execute_current_step() click to toggle source
# File lib/multi_redis/executor.rb, line 76
def execute_current_step
  results = @context.execute current_step, *@args
  @current_index += 1
  @final_results = results
end
next?(type) click to toggle source
# File lib/multi_redis/executor.rb, line 72
def next? type
  current_step && current_step.type == type
end
resolve_futures!() click to toggle source
# File lib/multi_redis/executor.rb, line 82
def resolve_futures!
  @context.resolve_futures!
end
resolve_operation_future!() click to toggle source
# File lib/multi_redis/executor.rb, line 86
def resolve_operation_future!
  @operation.future.value = @final_results if @operation.future
end

Private Instance Methods

current_step() click to toggle source
# File lib/multi_redis/executor.rb, line 92
def current_step
  @steps[@current_index]
end