class MultiRedis::Context

Attributes

last_replies[RW]
last_result[RW]

Public Class Methods

new(redis, shared_context = nil) click to toggle source
# File lib/multi_redis/context.rb, line 7
def initialize redis, shared_context = nil
  @redis = redis
  @data = Data.new
  @last_replies = []
  @shared_context = shared_context
end

Public Instance Methods

data() click to toggle source
# File lib/multi_redis/context.rb, line 32
def data
  @data
end
execute(operation, *args) click to toggle source
# File lib/multi_redis/context.rb, line 14
def execute operation, *args
  @last_result = operation.execute self, *args
  if @resolve = @redis.client.respond_to?(:futures)
    @last_replies = @redis.client.futures[@shared_context.last_replies.length, @redis.client.futures.length]
    @shared_context.last_replies.concat @last_replies
  end
  @shared_context.last_result = @last_result
  @last_result
end
redis() click to toggle source
# File lib/multi_redis/context.rb, line 28
def redis
  @redis
end
resolve_futures!() click to toggle source
# File lib/multi_redis/context.rb, line 36
def resolve_futures!
  return unless @resolve
  @data.each_key do |k|
    @data[k] = @data[k].value if @data[k].is_a? Redis::Future
  end
  @last_replies.collect!{ |r| r.is_a?(Redis::Future) ? r.value : r }
end
shared() click to toggle source
# File lib/multi_redis/context.rb, line 24
def shared
  @shared_context
end