Class: Redis::ReceiptedPipeline::Thunk
- Inherits:
-
Object
- Object
- Redis::ReceiptedPipeline::Thunk
- Defined in:
- lib/redis/structured-multi.rb
Instance Attribute Summary collapse
-
#pipeline ⇒ Object
readonly
Returns the value of attribute pipeline.
Instance Method Summary collapse
- #===(o) ⇒ Object
- #[](receipt) ⇒ Object
-
#initialize(pipeline, mbulk_reply) ⇒ Thunk
constructor
A new instance of Thunk.
Constructor Details
#initialize(pipeline, mbulk_reply) ⇒ Thunk
Returns a new instance of Thunk.
28 29 30 31 32 |
# File 'lib/redis/structured-multi.rb', line 28 def initialize(pipeline, mbulk_reply) @pipeline = pipeline @mbulk_reply = mbulk_reply @evaled_receipts = {} end |
Instance Attribute Details
#pipeline ⇒ Object (readonly)
Returns the value of attribute pipeline.
34 35 36 |
# File 'lib/redis/structured-multi.rb', line 34 def pipeline @pipeline end |
Instance Method Details
#===(o) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/redis/structured-multi.rb', line 36 def ===( o ) if o.kind_of? Receipt receipt_pipeline = o.instance_variable_get(:@pipeline) @pipeline.equal?(receipt_pipeline) else super end end |
#[](receipt) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/redis/structured-multi.rb', line 45 def []( receipt ) receipt_token = receipt.instance_variable_get(:@token) return @evaled_receipts[receipt_token] if @evaled_receipts.has_key?( receipt_token ) response = @mbulk_reply[ receipt_token ] receipt.instance_variable_get(:@commands).inject(response) do |o, (m, args, bl)| evaled_args = args.eqfmap(self){ |receipt| self[ receipt ] } o.send(m, *evaled_args, &bl) end end |