superfeedr-em-redis 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/em-redis/redis_protocol.rb +34 -3
- data/lib/em-redis/version.rb +1 -1
- metadata +4 -3
@@ -261,6 +261,33 @@ module EventMachine
|
|
261
261
|
callback { yield }
|
262
262
|
end
|
263
263
|
end
|
264
|
+
|
265
|
+
def call_commands(pipeline, &blk)
|
266
|
+
command = ""
|
267
|
+
processors = []
|
268
|
+
pipeline.each do |argv|
|
269
|
+
|
270
|
+
argv[0] = argv[0].to_s.downcase
|
271
|
+
|
272
|
+
argv[0] = ALIASES[argv[0]] if ALIASES[argv[0]]
|
273
|
+
raise "#{argv[0]} command is disabled" if DISABLED_COMMANDS[argv[0]]
|
274
|
+
|
275
|
+
processors.push(REPLY_PROCESSOR[argv[0]])
|
276
|
+
command << "*#{argv.size}\r\n"
|
277
|
+
argv.each do |a|
|
278
|
+
a = a.to_s
|
279
|
+
command << "$#{get_size(a)}\r\n"
|
280
|
+
command << a
|
281
|
+
command << "\r\n"
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
@logger.debug { "*** sending: #{command}" } if @logger
|
286
|
+
maybe_lock do
|
287
|
+
@redis_callbacks << [processors, processors.size, blk]
|
288
|
+
send_data command
|
289
|
+
end
|
290
|
+
end
|
264
291
|
|
265
292
|
def call_command(argv, &blk)
|
266
293
|
argv = argv.dup
|
@@ -443,13 +470,17 @@ module EventMachine
|
|
443
470
|
if callback.length == 2
|
444
471
|
processor, blk = callback
|
445
472
|
value = processor.call(value) if processor
|
473
|
+
|
446
474
|
blk.call(value) if blk
|
447
475
|
else
|
448
|
-
|
449
|
-
|
476
|
+
# That was a pipeline!
|
477
|
+
processors, pipeline_count, blk = callback
|
478
|
+
p = processors.shift()
|
479
|
+
value = p.call(value) if p
|
480
|
+
@values ||= []
|
450
481
|
@values << value
|
451
482
|
if pipeline_count > 1
|
452
|
-
@redis_callbacks.unshift [
|
483
|
+
@redis_callbacks.unshift [processors, pipeline_count - 1, blk] # Put back in the pipeline and just wait for the next
|
453
484
|
else
|
454
485
|
blk.call(@values) if blk
|
455
486
|
@values = []
|
data/lib/em-redis/version.rb
CHANGED
metadata
CHANGED
@@ -5,18 +5,19 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 1
|
9
|
+
version: 0.3.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jonathan Broad
|
13
13
|
- Eugene Pimenov
|
14
|
+
- Stephan Maka
|
14
15
|
- Julien Genestoux
|
15
16
|
autorequire:
|
16
17
|
bindir: bin
|
17
18
|
cert_chain: []
|
18
19
|
|
19
|
-
date: 2011-02-
|
20
|
+
date: 2011-02-23 00:00:00 -05:00
|
20
21
|
default_executable:
|
21
22
|
dependencies:
|
22
23
|
- !ruby/object:Gem::Dependency
|