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