Class: MultiRedis::Operation

Inherits:
Object
  • Object
show all
Defined in:
lib/multi_redis.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ Operation

Returns a new instance of Operation.



9
10
11
12
13
14
15
16
17
# File 'lib/multi_redis.rb', line 9

def initialize *args, &block

  options = args.last.kind_of?(Hash) ? args.pop : {}

  @target = args.shift || self
  @redis = options[:redis] || Redis.new
  @data = Data.new
  @block = block
end

Instance Method Details

#executeObject



19
20
21
# File 'lib/multi_redis.rb', line 19

def execute
  instance_eval &@block
end

#multi(&block) ⇒ Object



23
24
25
26
27
28
# File 'lib/multi_redis.rb', line 23

def multi &block
  @data.to_a = @redis.multi do
    @target.instance_exec @redis, @data, &block
  end
  @data.resolve_futures!
end

#run(&block) ⇒ Object



30
31
32
# File 'lib/multi_redis.rb', line 30

def run &block
  @target.instance_exec @data, &block
end