superfeedr-em-redis 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -58,7 +58,7 @@ module EventMachine
58
58
  "hgetall" => lambda{|r|
59
59
  begin
60
60
  Hash[*r]
61
- rescue ArgumentError # Happens when the key is not set.
61
+ rescue ArgumentError # Happens when the key is not set, redis returns none.
62
62
  {}
63
63
  end
64
64
  }
@@ -269,17 +269,16 @@ module EventMachine
269
269
  end
270
270
  end
271
271
 
272
- def call_commands(pipeline, &blk)
272
+ def call_commands(pipeline, pipelined = true, &blk)
273
273
  command = ""
274
- processors = []
274
+ comms = []
275
275
  pipeline.each do |argv|
276
-
277
276
  argv[0] = argv[0].to_s.downcase
278
277
 
279
278
  argv[0] = ALIASES[argv[0]] if ALIASES[argv[0]]
280
279
  raise "#{argv[0]} command is disabled" if DISABLED_COMMANDS[argv[0]]
281
280
 
282
- processors.push(REPLY_PROCESSOR[argv[0]])
281
+ comms.push(argv)
283
282
  command << "*#{argv.size}\r\n"
284
283
  argv.each do |a|
285
284
  a = a.to_s
@@ -291,32 +290,13 @@ module EventMachine
291
290
 
292
291
  @logger.debug { "*** sending: #{command}" } if @logger
293
292
  maybe_lock do
294
- @redis_callbacks << [processors, processors.size, blk]
293
+ @redis_callbacks << [comms, pipelined, blk]
295
294
  send_data command
296
295
  end
297
296
  end
298
297
 
299
298
  def call_command(argv, &blk)
300
- argv = argv.dup
301
-
302
- argv[0] = argv[0].to_s.downcase
303
- argv[0] = ALIASES[argv[0]] if ALIASES[argv[0]]
304
- raise "#{argv[0]} command is disabled" if DISABLED_COMMANDS[argv[0]]
305
-
306
- command = ""
307
- command << "*#{argv.size}\r\n"
308
- argv.each do |a|
309
- a = a.to_s
310
- command << "$#{get_size(a)}\r\n"
311
- command << a
312
- command << "\r\n"
313
- end
314
-
315
- @logger.debug { "*** sending: #{command}" } if @logger
316
- maybe_lock do
317
- @redis_callbacks << [REPLY_PROCESSOR[argv[0]], blk]
318
- send_data command
319
- end
299
+ call_commands([argv], false, &blk)
320
300
  end
321
301
 
322
302
  ##
@@ -474,24 +454,23 @@ module EventMachine
474
454
  end
475
455
 
476
456
  callback = @redis_callbacks.shift
477
- if callback.length == 2
478
- processor, blk = callback
479
- value = processor.call(value) if processor
480
-
481
- blk.call(value) if blk
482
- else
483
- # That was a pipeline!
484
- processors, pipeline_count, blk = callback
485
- p = processors.shift()
486
- value = p.call(value) if p
487
- @values ||= []
488
- @values << value
489
- if pipeline_count > 1
490
- @redis_callbacks.unshift [processors, pipeline_count - 1, blk] # Put back in the pipeline and just wait for the next
457
+ commands, pipelined, blk = callback
458
+ @values ||= []
459
+ command = commands[@values.size]
460
+ processor = REPLY_PROCESSOR[command[0]]
461
+ value = processor.call(value) if processor
462
+ @values.push(value)
463
+ if @values.size == commands.size
464
+ if !pipelined
465
+ # This was not a PIPELINE!
466
+ blk.call(@values[0]) if blk
491
467
  else
492
468
  blk.call(@values) if blk
493
- @values = []
494
469
  end
470
+ @values = []
471
+ else
472
+ # We need to wait for the other commands to succeed as well
473
+ @redis_callbacks.unshift([commands, blk])
495
474
  end
496
475
  end
497
476
 
@@ -1,3 +1,3 @@
1
1
  module EMRedis
2
- VERSION = '0.3.3' unless defined? ::EMRedis::VERSION
2
+ VERSION = '0.3.4' unless defined? ::EMRedis::VERSION
3
3
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: superfeedr-em-redis
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 3
9
- - 3
10
- version: 0.3.3
8
+ - 4
9
+ version: 0.3.4
11
10
  platform: ruby
12
11
  authors:
13
12
  - Jonathan Broad
@@ -29,7 +28,6 @@ dependencies:
29
28
  requirements:
30
29
  - - ">="
31
30
  - !ruby/object:Gem::Version
32
- hash: 3
33
31
  segments:
34
32
  - 0
35
33
  version: "0"
@@ -43,7 +41,6 @@ dependencies:
43
41
  requirements:
44
42
  - - ~>
45
43
  - !ruby/object:Gem::Version
46
- hash: 15424249
47
44
  segments:
48
45
  - 1
49
46
  - 0
@@ -79,7 +76,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
76
  requirements:
80
77
  - - ">="
81
78
  - !ruby/object:Gem::Version
82
- hash: 3
83
79
  segments:
84
80
  - 0
85
81
  version: "0"
@@ -88,7 +84,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
84
  requirements:
89
85
  - - ">="
90
86
  - !ruby/object:Gem::Version
91
- hash: 3
92
87
  segments:
93
88
  - 0
94
89
  version: "0"