Class: MockRedis::PipelinedWrapper
- Inherits:
-
Object
- Object
- MockRedis::PipelinedWrapper
show all
- Includes:
- UndefRedisMethods
- Defined in:
- lib/mock_redis/pipelined_wrapper.rb
Instance Method Summary
collapse
included
Constructor Details
Returns a new instance of PipelinedWrapper.
9
10
11
12
13
|
# File 'lib/mock_redis/pipelined_wrapper.rb', line 9
def initialize(db)
@db = db
@pipelined_futures = []
@in_pipeline = false
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
21
22
23
24
25
26
27
28
29
|
# File 'lib/mock_redis/pipelined_wrapper.rb', line 21
def method_missing(method, *args, &block)
if @in_pipeline
future = MockRedis::Future.new([method, *args])
@pipelined_futures << future
future
else
@db.send(method, *args, &block)
end
end
|
Instance Method Details
#initialize_copy(source) ⇒ Object
15
16
17
18
19
|
# File 'lib/mock_redis/pipelined_wrapper.rb', line 15
def initialize_copy(source)
super
@db = @db.clone
@pipelined_futures = @pipelined_futures.clone
end
|
#pipelined(_options = {}) {|_self| ... } ⇒ Object
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/mock_redis/pipelined_wrapper.rb', line 31
def pipelined(_options = {})
@in_pipeline = true
yield self
@in_pipeline = false
responses = @pipelined_futures.map do |future|
begin
result = send(*future.command)
future.store_result(result)
result
rescue => e
e
end
end
@pipelined_futures = []
responses
end
|
#respond_to?(method, include_private = false) ⇒ Boolean
5
6
7
|
# File 'lib/mock_redis/pipelined_wrapper.rb', line 5
def respond_to?(method, include_private = false)
super || @db.respond_to?(method)
end
|