ruby-redis 0.0.1 → 0.0.2

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.
data/lib/redis/reader.rb CHANGED
@@ -1,29 +1,39 @@
1
- require File.expand_path '../redis', File.dirname(__FILE__)
2
-
3
- class Redis
4
-
5
- # This is almost as fast as hiredis/reader plus it supports servers
1
+ module Redis
6
2
  class Reader < Array
7
3
 
8
4
  # Minimize the amount of memory copying. The primary
9
5
  # performance trick is to String#split and work with that.
6
+ # This is almost as fast as hiredis/reader plus it supports servers
10
7
 
11
- #TODO configurable limits
12
- #TODO max buffer size based on limits
13
-
14
- def initialize
8
+ def initialize options={}
15
9
  super()
10
+ @multibulk_limit = options[:multibulk_limit] || 1024*1024
11
+ @bulk_limit = options[:bulk_limit] || 512*1024*1024
12
+ @buffer_overflow = false
16
13
  flush
17
14
  end
18
15
 
19
- alias :feed :push
16
+ def feed data
17
+ return if @buffer_overflow
18
+ if reduce(0){|t,e|t+e.bytesize} > @bulk_limit + 2
19
+ @buffer_overflow = true
20
+ flush
21
+ return
22
+ end
23
+ push data
24
+ end
20
25
 
21
26
  def gets
27
+ raise 'buffer overflow' if @buffer_overflow
22
28
  if @completed.empty?
23
29
  unshift_split if @split
24
30
  frame do |str|
25
31
  @elements << str
26
- if @remaining > 0
32
+ if @remaining != 0
33
+ if @remaining < 0
34
+ @remaining = -@remaining
35
+ @elements = str
36
+ end
27
37
  @remaining -= 1
28
38
  if @remaining == 0 and !@stack.empty?
29
39
  elements = @elements
@@ -33,8 +43,6 @@ class Redis
33
43
  end
34
44
  next unless @remaining == 0
35
45
  @completed << @elements
36
- elsif @remaining < 0
37
- @completed << nil
38
46
  elsif !@elements.empty?
39
47
  @completed << @elements[0]
40
48
  end
@@ -85,9 +93,12 @@ class Redis
85
93
  when '*'
86
94
  prev_remaining = @remaining
87
95
  @remaining = line[1..-1].to_i
88
- if @remaining == -1
96
+ if @remaining == 0
97
+ @remaining = -1
98
+ yield []
99
+ elsif @remaining == -1
89
100
  yield nil
90
- elsif @remaining > 1024*1024
101
+ elsif @remaining > @multibulk_limit
91
102
  flush
92
103
  raise 'invalid multibulk length'
93
104
  elsif prev_remaining > 0
@@ -99,14 +110,14 @@ class Redis
99
110
  if @binary_size == -1
100
111
  @binary_size = nil
101
112
  yield nil
102
- elsif (@binary_size == 0 and line[1..1] != '0') or @binary_size < 0 or @binary_size > 512*1024*1024
113
+ elsif (@binary_size == 0 and line[1..1] != '0') or @binary_size < 0 or @binary_size > @bulk_limit
103
114
  flush
104
115
  raise 'invalid bulk length'
105
116
  end
106
117
  else
107
118
  if @remaining > 0
108
119
  flush
109
- raise "expected '$', got '#{line[0].chr}'"
120
+ raise "expected \"$\", got #{line[0].chr.dump}"
110
121
  end
111
122
  parts = line.split(' ')
112
123
  @remaining = parts.size
data/lib/redis/reader.rbc CHANGED
@@ -9,57 +9,31 @@ x
9
9
  10
10
10
  __script__
11
11
  i
12
- 54
13
- 5
14
- 45
15
- 0
16
- 1
12
+ 28
13
+ 99
17
14
  7
18
- 2
19
- 64
20
- 45
21
15
  0
22
- 3
23
16
  65
24
17
  49
25
- 4
26
- 0
27
- 49
28
- 5
29
18
  1
30
- 49
31
- 6
32
19
  2
33
- 47
34
- 49
35
- 7
36
- 1
37
- 15
38
- 99
39
- 7
40
- 8
41
- 1
42
- 65
43
- 49
44
- 9
45
- 3
46
20
  13
47
21
  99
48
22
  12
49
23
  7
50
- 10
24
+ 2
51
25
  12
52
26
  7
53
- 11
27
+ 3
54
28
  12
55
29
  65
56
30
  12
57
31
  49
58
- 12
32
+ 4
59
33
  4
60
34
  15
61
35
  49
62
- 10
36
+ 2
63
37
  0
64
38
  15
65
39
  2
@@ -74,36 +48,16 @@ I
74
48
  0
75
49
  n
76
50
  p
77
- 13
78
- x
79
- 4
80
- File
81
- n
82
- s
83
- 8
84
- ../redis
85
- n
86
- x
87
- 11
88
- active_path
89
- x
90
- 7
91
- dirname
92
- x
93
- 11
94
- expand_path
95
- x
96
- 7
97
- require
51
+ 5
98
52
  x
99
53
  5
100
54
  Redis
101
55
  x
102
- 10
103
- open_class
56
+ 11
57
+ open_module
104
58
  x
105
- 14
106
- __class_init__
59
+ 15
60
+ __module_init__
107
61
  M
108
62
  1
109
63
  n
@@ -317,54 +271,165 @@ x
317
271
  10
318
272
  initialize
319
273
  i
320
- 9
274
+ 74
275
+ 23
276
+ 0
277
+ 10
278
+ 14
279
+ 44
280
+ 43
281
+ 0
282
+ 78
283
+ 49
284
+ 1
285
+ 1
286
+ 19
287
+ 0
288
+ 15
321
289
  54
322
290
  52
291
+ 2
323
292
  0
293
+ 15
294
+ 20
324
295
  0
296
+ 7
297
+ 3
298
+ 49
299
+ 4
300
+ 1
301
+ 13
302
+ 10
303
+ 37
325
304
  15
305
+ 7
326
306
  5
327
- 48
307
+ 7
308
+ 5
309
+ 49
310
+ 6
328
311
  1
312
+ 38
313
+ 7
314
+ 15
315
+ 20
316
+ 0
317
+ 7
318
+ 8
319
+ 49
320
+ 4
321
+ 1
322
+ 13
323
+ 10
324
+ 63
325
+ 15
326
+ 7
327
+ 9
328
+ 7
329
+ 5
330
+ 49
331
+ 6
332
+ 1
333
+ 7
334
+ 5
335
+ 49
336
+ 6
337
+ 1
338
+ 38
339
+ 10
340
+ 15
341
+ 3
342
+ 38
343
+ 11
344
+ 15
345
+ 5
346
+ 48
347
+ 12
329
348
  11
330
349
  I
331
- 1
350
+ 3
332
351
  I
333
- 0
352
+ 1
334
353
  I
335
354
  0
336
355
  I
337
- 0
356
+ 1
338
357
  n
339
358
  p
340
- 2
359
+ 13
360
+ x
361
+ 4
362
+ Hash
363
+ x
364
+ 16
365
+ new_from_literal
341
366
  x
342
367
  10
343
368
  initialize
344
369
  x
370
+ 15
371
+ multibulk_limit
372
+ x
373
+ 2
374
+ []
375
+ I
376
+ 400
377
+ x
378
+ 1
379
+ *
380
+ x
381
+ 16
382
+ @multibulk_limit
383
+ x
384
+ 10
385
+ bulk_limit
386
+ I
387
+ 200
388
+ x
389
+ 11
390
+ @bulk_limit
391
+ x
392
+ 16
393
+ @buffer_overflow
394
+ x
345
395
  5
346
396
  flush
347
397
  p
348
- 7
398
+ 13
349
399
  I
350
400
  -1
351
401
  I
402
+ 8
403
+ I
352
404
  e
353
405
  I
354
- 0
406
+ 9
355
407
  I
356
- f
408
+ 13
357
409
  I
358
- 5
410
+ a
359
411
  I
360
- 10
412
+ 28
361
413
  I
362
- 9
414
+ b
415
+ I
416
+ 42
417
+ I
418
+ c
419
+ I
420
+ 46
421
+ I
422
+ d
423
+ I
424
+ 4a
363
425
  x
364
426
  52
365
427
  /Users/dturnbull/ruby/ruby-redis/lib/redis/reader.rb
366
428
  p
367
- 0
429
+ 1
430
+ x
431
+ 7
432
+ options
368
433
  x
369
434
  17
370
435
  method_visibility
@@ -382,16 +447,46 @@ x
382
447
  4
383
448
  feed
384
449
  i
385
- 19
450
+ 49
386
451
  39
387
452
  0
388
453
  9
454
+ 8
455
+ 1
456
+ 11
457
+ 8
389
458
  9
459
+ 1
460
+ 15
461
+ 5
462
+ 78
463
+ 56
464
+ 1
465
+ 47
466
+ 50
467
+ 2
468
+ 1
469
+ 39
470
+ 3
471
+ 80
472
+ 81
473
+ 4
474
+ 85
475
+ 5
476
+ 9
477
+ 39
478
+ 2
479
+ 38
480
+ 0
481
+ 15
390
482
  5
391
483
  48
484
+ 6
485
+ 15
392
486
  1
487
+ 11
393
488
  8
394
- 10
489
+ 40
395
490
  1
396
491
  15
397
492
  5
@@ -399,11 +494,11 @@ i
399
494
  0
400
495
  47
401
496
  49
402
- 2
497
+ 7
403
498
  1
404
499
  11
405
500
  I
406
- 3
501
+ 4
407
502
  I
408
503
  1
409
504
  I
@@ -412,36 +507,142 @@ I
412
507
  1
413
508
  n
414
509
  p
510
+ 8
511
+ x
512
+ 16
513
+ @buffer_overflow
514
+ M
515
+ 1
516
+ p
517
+ 2
518
+ x
519
+ 9
520
+ for_block
521
+ t
522
+ n
523
+ x
524
+ 4
525
+ feed
526
+ i
527
+ 20
528
+ 58
529
+ 37
530
+ 19
531
+ 0
532
+ 15
533
+ 37
534
+ 19
535
+ 1
536
+ 15
537
+ 15
538
+ 20
539
+ 0
540
+ 20
541
+ 1
542
+ 49
543
+ 0
544
+ 0
545
+ 81
546
+ 1
547
+ 11
548
+ I
549
+ 5
550
+ I
551
+ 2
552
+ I
553
+ 2
554
+ I
555
+ 2
556
+ n
557
+ p
558
+ 2
559
+ x
560
+ 8
561
+ bytesize
562
+ x
563
+ 1
564
+ +
565
+ p
415
566
  3
567
+ I
568
+ 0
569
+ I
570
+ 12
571
+ I
572
+ 14
573
+ x
574
+ 52
575
+ /Users/dturnbull/ruby/ruby-redis/lib/redis/reader.rb
576
+ p
577
+ 2
578
+ x
579
+ 1
580
+ t
581
+ x
582
+ 1
583
+ e
416
584
  x
417
585
  6
418
- @split
586
+ reduce
419
587
  x
420
- 13
421
- unshift_split
588
+ 11
589
+ @bulk_limit
590
+ x
591
+ 1
592
+ +
593
+ x
594
+ 1
595
+ >
596
+ x
597
+ 5
598
+ flush
422
599
  x
423
600
  4
424
601
  push
425
602
  p
426
- 9
603
+ 21
427
604
  I
428
605
  -1
429
606
  I
430
- 13
607
+ 10
431
608
  I
432
609
  0
433
610
  I
434
- 14
611
+ 11
435
612
  I
436
- a
613
+ 9
437
614
  I
438
615
  0
439
616
  I
440
- b
617
+ a
441
618
  I
442
- 15
619
+ 12
620
+ I
621
+ 1b
443
622
  I
444
623
  13
624
+ I
625
+ 1f
626
+ I
627
+ 14
628
+ I
629
+ 23
630
+ I
631
+ 15
632
+ I
633
+ 27
634
+ I
635
+ 12
636
+ I
637
+ 28
638
+ I
639
+ 0
640
+ I
641
+ 29
642
+ I
643
+ 17
644
+ I
645
+ 31
445
646
  x
446
647
  52
447
648
  /Users/dturnbull/ruby/ruby-redis/lib/redis/reader.rb
@@ -461,32 +662,69 @@ x
461
662
  4
462
663
  gets
463
664
  i
464
- 27
665
+ 64
666
+ 39
667
+ 0
668
+ 9
669
+ 14
465
670
  5
466
- 56
671
+ 7
672
+ 1
673
+ 64
674
+ 47
675
+ 49
676
+ 2
677
+ 1
678
+ 8
679
+ 15
680
+ 1
681
+ 15
682
+ 39
683
+ 3
684
+ 49
685
+ 4
467
686
  0
687
+ 9
688
+ 43
689
+ 39
690
+ 5
691
+ 9
692
+ 32
693
+ 5
694
+ 48
695
+ 6
696
+ 8
697
+ 33
698
+ 1
699
+ 15
700
+ 5
701
+ 56
702
+ 7
468
703
  47
469
704
  50
470
- 1
705
+ 8
471
706
  0
707
+ 8
708
+ 44
709
+ 1
472
710
  15
473
711
  39
474
- 2
475
- 49
476
712
  3
713
+ 49
714
+ 4
477
715
  0
478
716
  9
479
- 19
717
+ 56
480
718
  3
481
719
  11
482
720
  8
483
- 20
721
+ 57
484
722
  1
485
723
  15
486
724
  39
487
- 2
725
+ 3
488
726
  49
489
- 4
727
+ 9
490
728
  0
491
729
  11
492
730
  I
@@ -499,7 +737,28 @@ I
499
737
  0
500
738
  n
501
739
  p
740
+ 10
741
+ x
742
+ 16
743
+ @buffer_overflow
744
+ s
745
+ 15
746
+ buffer overflow
747
+ x
502
748
  5
749
+ raise
750
+ x
751
+ 10
752
+ @completed
753
+ x
754
+ 6
755
+ empty?
756
+ x
757
+ 6
758
+ @split
759
+ x
760
+ 13
761
+ unshift_split
503
762
  M
504
763
  1
505
764
  p
@@ -513,7 +772,7 @@ x
513
772
  4
514
773
  gets
515
774
  i
516
- 164
775
+ 172
517
776
  57
518
777
  19
519
778
  0
@@ -529,15 +788,67 @@ i
529
788
  39
530
789
  2
531
790
  78
532
- 85
791
+ 83
533
792
  3
534
793
  9
535
- 112
794
+ 48
795
+ 39
796
+ 0
797
+ 49
798
+ 4
799
+ 0
800
+ 10
801
+ 29
802
+ 2
803
+ 8
804
+ 30
805
+ 3
806
+ 9
807
+ 45
808
+ 39
809
+ 5
810
+ 39
811
+ 0
812
+ 78
813
+ 49
814
+ 6
815
+ 1
816
+ 49
817
+ 1
818
+ 1
819
+ 8
820
+ 46
821
+ 1
822
+ 8
823
+ 162
824
+ 39
825
+ 2
826
+ 78
827
+ 84
828
+ 7
829
+ 9
830
+ 69
831
+ 39
832
+ 2
833
+ 49
834
+ 8
835
+ 0
836
+ 38
837
+ 2
838
+ 15
839
+ 20
840
+ 0
841
+ 38
842
+ 0
843
+ 8
844
+ 70
845
+ 1
846
+ 15
536
847
  39
537
848
  2
538
849
  79
539
850
  82
540
- 4
851
+ 9
541
852
  38
542
853
  2
543
854
  15
@@ -545,33 +856,33 @@ i
545
856
  2
546
857
  78
547
858
  83
548
- 5
859
+ 3
549
860
  13
550
861
  9
551
- 47
862
+ 99
552
863
  15
553
864
  39
554
- 6
865
+ 10
555
866
  49
556
- 7
867
+ 4
557
868
  0
558
869
  10
559
- 46
870
+ 98
560
871
  2
561
872
  8
562
- 47
873
+ 99
563
874
  3
564
875
  9
565
- 88
876
+ 140
566
877
  39
567
878
  0
568
879
  19
569
880
  1
570
881
  15
571
882
  39
572
- 6
883
+ 10
573
884
  49
574
- 8
885
+ 11
575
886
  0
576
887
  97
577
888
  37
@@ -597,77 +908,33 @@ i
597
908
  2
598
909
  79
599
910
  82
600
- 4
911
+ 9
601
912
  38
602
913
  2
603
914
  8
604
- 89
915
+ 141
605
916
  1
606
917
  15
607
918
  39
608
919
  2
609
920
  78
610
921
  83
611
- 5
922
+ 3
612
923
  9
613
- 100
924
+ 152
614
925
  1
615
926
  8
616
- 102
927
+ 154
617
928
  1
618
929
  11
619
930
  15
620
931
  39
621
- 9
622
- 39
623
- 0
624
- 49
625
- 1
626
- 1
627
- 8
628
- 154
629
- 39
630
- 2
631
- 78
632
- 84
633
- 10
634
- 9
635
- 127
636
- 39
637
- 9
638
- 1
639
- 49
640
- 1
641
- 1
642
- 8
643
- 154
644
- 39
645
- 0
646
- 49
647
- 7
648
- 0
649
- 10
650
- 137
651
- 2
652
- 8
653
- 138
654
- 3
655
- 9
656
- 153
657
- 39
658
- 9
932
+ 5
659
933
  39
660
934
  0
661
- 78
662
- 49
663
- 11
664
- 1
665
935
  49
666
936
  1
667
937
  1
668
- 8
669
- 154
670
- 1
671
938
  15
672
939
  35
673
940
  0
@@ -699,110 +966,118 @@ x
699
966
  10
700
967
  @remaining
701
968
  x
702
- 1
703
- >
704
- x
705
- 1
706
- -
707
- x
708
969
  2
709
970
  ==
710
971
  x
711
972
  6
712
- @stack
713
- x
714
- 6
715
973
  empty?
716
974
  x
717
- 3
718
- pop
719
- x
720
975
  10
721
976
  @completed
722
977
  x
978
+ 2
979
+ []
980
+ x
723
981
  1
724
982
  <
725
983
  x
726
984
  2
727
- []
985
+ -@
986
+ x
987
+ 1
988
+ -
989
+ x
990
+ 6
991
+ @stack
992
+ x
993
+ 3
994
+ pop
728
995
  p
729
- 45
996
+ 53
730
997
  I
731
998
  0
732
999
  I
733
- 1c
1000
+ 1e
734
1001
  I
735
1002
  4
736
1003
  I
737
- 1d
1004
+ 1f
738
1005
  I
739
1006
  c
740
1007
  I
741
- 1e
1008
+ 20
742
1009
  I
743
1010
  13
744
1011
  I
745
- 1f
746
- I
747
- 1b
1012
+ 2e
748
1013
  I
749
1014
  20
750
1015
  I
751
- 31
1016
+ 2f
1017
+ I
1018
+ 2d
1019
+ I
1020
+ 2e
1021
+ I
1022
+ 2e
1023
+ I
1024
+ 0
1025
+ I
1026
+ 30
752
1027
  I
753
1028
  21
754
1029
  I
755
- 36
1030
+ 37
756
1031
  I
757
1032
  22
758
1033
  I
759
- 47
1034
+ 3f
760
1035
  I
761
1036
  23
762
1037
  I
763
- 4f
764
- I
765
- 24
766
- I
767
- 58
1038
+ 45
768
1039
  I
769
- 20
1040
+ 21
770
1041
  I
771
- 59
1042
+ 46
772
1043
  I
773
1044
  0
774
1045
  I
775
- 5a
1046
+ 47
776
1047
  I
777
- 26
1048
+ 25
778
1049
  I
779
- 66
1050
+ 4f
780
1051
  I
781
- 0
1052
+ 26
782
1053
  I
783
- 67
1054
+ 65
784
1055
  I
785
1056
  27
786
1057
  I
787
- 70
1058
+ 6a
788
1059
  I
789
1060
  28
790
1061
  I
791
- 77
1062
+ 7b
792
1063
  I
793
1064
  29
794
1065
  I
795
- 7f
1066
+ 83
796
1067
  I
797
1068
  2a
798
1069
  I
799
1070
  8c
800
1071
  I
801
- 2b
1072
+ 26
802
1073
  I
803
- 99
1074
+ 8d
804
1075
  I
805
- 2a
1076
+ 0
1077
+ I
1078
+ 8e
1079
+ I
1080
+ 2c
806
1081
  I
807
1082
  9a
808
1083
  I
@@ -812,11 +1087,19 @@ I
812
1087
  I
813
1088
  2d
814
1089
  I
815
- a0
1090
+ a2
816
1091
  I
817
- 2e
1092
+ 0
1093
+ I
1094
+ a3
1095
+ I
1096
+ 31
818
1097
  I
819
- a4
1098
+ a8
1099
+ I
1100
+ 32
1101
+ I
1102
+ ac
820
1103
  x
821
1104
  52
822
1105
  /Users/dturnbull/ruby/ruby-redis/lib/redis/reader.rb
@@ -832,38 +1115,60 @@ x
832
1115
  5
833
1116
  frame
834
1117
  x
835
- 10
836
- @completed
837
- x
838
- 6
839
- empty?
840
- x
841
1118
  5
842
1119
  shift
843
1120
  p
844
- 11
1121
+ 25
845
1122
  I
846
1123
  -1
847
1124
  I
1125
+ 1a
1126
+ I
1127
+ 0
1128
+ I
848
1129
  1b
849
1130
  I
1131
+ f
1132
+ I
850
1133
  0
851
1134
  I
1135
+ 10
1136
+ I
852
1137
  1c
853
1138
  I
854
- 8
1139
+ 17
855
1140
  I
856
- 30
1141
+ 1d
857
1142
  I
858
- 14
1143
+ 21
859
1144
  I
860
1145
  0
861
1146
  I
862
- 15
1147
+ 22
863
1148
  I
864
- 31
1149
+ 1e
865
1150
  I
866
- 1b
1151
+ 2b
1152
+ I
1153
+ 1c
1154
+ I
1155
+ 2c
1156
+ I
1157
+ 0
1158
+ I
1159
+ 2d
1160
+ I
1161
+ 35
1162
+ I
1163
+ 39
1164
+ I
1165
+ 0
1166
+ I
1167
+ 3a
1168
+ I
1169
+ 36
1170
+ I
1171
+ 40
867
1172
  x
868
1173
  52
869
1174
  /Users/dturnbull/ruby/ruby-redis/lib/redis/reader.rb
@@ -959,39 +1264,39 @@ p
959
1264
  I
960
1265
  -1
961
1266
  I
962
- 36
1267
+ 3b
963
1268
  I
964
1269
  0
965
1270
  I
966
- 37
1271
+ 3c
967
1272
  I
968
1273
  4
969
1274
  I
970
- 38
1275
+ 3d
971
1276
  I
972
1277
  8
973
1278
  I
974
- 39
1279
+ 3e
975
1280
  I
976
1281
  c
977
1282
  I
978
- 3a
1283
+ 3f
979
1284
  I
980
1285
  10
981
1286
  I
982
- 3b
1287
+ 40
983
1288
  I
984
1289
  15
985
1290
  I
986
- 3c
1291
+ 41
987
1292
  I
988
1293
  1a
989
1294
  I
990
- 3d
1295
+ 42
991
1296
  I
992
1297
  1f
993
1298
  I
994
- 3e
1299
+ 43
995
1300
  I
996
1301
  23
997
1302
  x
@@ -1058,15 +1363,15 @@ p
1058
1363
  I
1059
1364
  -1
1060
1365
  I
1061
- 41
1366
+ 46
1062
1367
  I
1063
1368
  0
1064
1369
  I
1065
- 42
1370
+ 47
1066
1371
  I
1067
1372
  e
1068
1373
  I
1069
- 43
1374
+ 48
1070
1375
  I
1071
1376
  12
1072
1377
  x
@@ -1085,10 +1390,10 @@ x
1085
1390
  5
1086
1391
  frame
1087
1392
  i
1088
- 492
1393
+ 495
1089
1394
  2
1090
1395
  9
1091
- 490
1396
+ 493
1092
1397
  39
1093
1398
  0
1094
1399
  9
@@ -1112,7 +1417,7 @@ i
1112
1417
  27
1113
1418
  1
1114
1419
  8
1115
- 491
1420
+ 494
1116
1421
  15
1117
1422
  1
1118
1423
  38
@@ -1123,7 +1428,7 @@ i
1123
1428
  60
1124
1429
  1
1125
1430
  8
1126
- 486
1431
+ 489
1127
1432
  5
1128
1433
  48
1129
1434
  2
@@ -1139,7 +1444,7 @@ i
1139
1444
  54
1140
1445
  1
1141
1446
  8
1142
- 491
1447
+ 494
1143
1448
  15
1144
1449
  20
1145
1450
  1
@@ -1218,7 +1523,7 @@ i
1218
1523
  60
1219
1524
  1
1220
1525
  8
1221
- 486
1526
+ 489
1222
1527
  13
1223
1528
  7
1224
1529
  12
@@ -1246,7 +1551,7 @@ i
1246
1551
  60
1247
1552
  1
1248
1553
  8
1249
- 486
1554
+ 489
1250
1555
  13
1251
1556
  7
1252
1557
  13
@@ -1277,7 +1582,7 @@ i
1277
1582
  60
1278
1583
  1
1279
1584
  8
1280
- 486
1585
+ 489
1281
1586
  13
1282
1587
  7
1283
1588
  15
@@ -1287,7 +1592,7 @@ i
1287
1592
  7
1288
1593
  1
1289
1594
  9
1290
- 294
1595
+ 306
1291
1596
  15
1292
1597
  39
1293
1598
  16
@@ -1315,81 +1620,93 @@ i
1315
1620
  15
1316
1621
  39
1317
1622
  16
1623
+ 78
1624
+ 83
1625
+ 17
1626
+ 9
1627
+ 244
1628
+ 77
1629
+ 38
1630
+ 16
1631
+ 15
1632
+ 35
1633
+ 0
1634
+ 60
1635
+ 1
1636
+ 8
1637
+ 304
1638
+ 39
1639
+ 16
1318
1640
  77
1319
1641
  83
1320
1642
  17
1321
1643
  9
1322
- 239
1644
+ 256
1323
1645
  1
1324
1646
  60
1325
1647
  1
1326
1648
  8
1327
- 292
1649
+ 304
1328
1650
  39
1329
1651
  16
1330
- 7
1331
- 18
1332
- 7
1652
+ 39
1333
1653
  18
1334
- 49
1335
- 19
1336
- 1
1337
1654
  85
1338
- 20
1655
+ 19
1339
1656
  9
1340
- 266
1657
+ 278
1341
1658
  5
1342
1659
  48
1343
- 21
1660
+ 20
1344
1661
  15
1345
1662
  5
1346
1663
  7
1347
- 22
1664
+ 21
1348
1665
  64
1349
1666
  47
1350
1667
  49
1351
- 23
1668
+ 22
1352
1669
  1
1353
1670
  8
1354
- 292
1671
+ 304
1355
1672
  20
1356
1673
  2
1357
1674
  78
1358
1675
  85
1359
- 20
1676
+ 19
1360
1677
  9
1361
- 291
1678
+ 303
1362
1679
  39
1363
- 24
1680
+ 23
1364
1681
  39
1365
- 25
1682
+ 24
1366
1683
  20
1367
1684
  2
1368
1685
  35
1369
1686
  2
1370
1687
  49
1371
- 26
1688
+ 25
1372
1689
  1
1373
1690
  15
1374
1691
  35
1375
1692
  0
1376
1693
  38
1377
- 25
1694
+ 24
1378
1695
  8
1379
- 292
1696
+ 304
1380
1697
  1
1381
1698
  8
1382
- 486
1699
+ 489
1383
1700
  13
1384
1701
  7
1385
- 27
1702
+ 26
1386
1703
  64
1387
1704
  12
1388
1705
  49
1389
1706
  7
1390
1707
  1
1391
1708
  9
1392
- 421
1709
+ 423
1393
1710
  15
1394
1711
  20
1395
1712
  1
@@ -1416,7 +1733,7 @@ i
1416
1733
  83
1417
1734
  17
1418
1735
  9
1419
- 340
1736
+ 352
1420
1737
  1
1421
1738
  38
1422
1739
  0
@@ -1425,7 +1742,7 @@ i
1425
1742
  60
1426
1743
  1
1427
1744
  8
1428
- 419
1745
+ 421
1429
1746
  39
1430
1747
  0
1431
1748
  78
@@ -1433,7 +1750,7 @@ i
1433
1750
  17
1434
1751
  13
1435
1752
  9
1436
- 373
1753
+ 385
1437
1754
  15
1438
1755
  20
1439
1756
  1
@@ -1449,79 +1766,69 @@ i
1449
1766
  5
1450
1767
  1
1451
1768
  7
1452
- 28
1769
+ 27
1453
1770
  64
1454
1771
  83
1455
1772
  17
1456
1773
  10
1457
- 372
1774
+ 384
1458
1775
  2
1459
1776
  8
1460
- 373
1777
+ 385
1461
1778
  3
1462
1779
  13
1463
1780
  10
1464
- 402
1781
+ 404
1465
1782
  15
1466
1783
  39
1467
1784
  0
1468
1785
  78
1469
1786
  84
1470
- 29
1787
+ 28
1471
1788
  13
1472
1789
  10
1473
- 402
1790
+ 404
1474
1791
  15
1475
1792
  39
1476
1793
  0
1477
- 7
1478
- 30
1479
- 7
1480
- 18
1481
- 49
1482
- 19
1483
- 1
1484
- 7
1485
- 18
1486
- 49
1487
- 19
1488
- 1
1794
+ 39
1795
+ 29
1489
1796
  85
1490
- 20
1797
+ 19
1491
1798
  9
1492
- 418
1799
+ 420
1493
1800
  5
1494
1801
  48
1495
- 21
1802
+ 20
1496
1803
  15
1497
1804
  5
1498
1805
  7
1499
- 31
1806
+ 30
1500
1807
  64
1501
1808
  47
1502
1809
  49
1503
- 23
1810
+ 22
1504
1811
  1
1505
1812
  8
1506
- 419
1813
+ 421
1507
1814
  1
1508
1815
  8
1509
- 486
1816
+ 489
1510
1817
  15
1511
1818
  39
1512
1819
  16
1513
1820
  78
1514
1821
  85
1515
- 20
1822
+ 19
1516
1823
  9
1517
- 458
1824
+ 461
1518
1825
  5
1519
1826
  48
1520
- 21
1827
+ 20
1521
1828
  15
1522
1829
  5
1523
1830
  7
1524
- 32
1831
+ 31
1525
1832
  20
1526
1833
  1
1527
1834
  78
@@ -1529,30 +1836,31 @@ i
1529
1836
  5
1530
1837
  1
1531
1838
  49
1839
+ 32
1840
+ 0
1841
+ 49
1532
1842
  33
1533
1843
  0
1534
1844
  47
1535
1845
  101
1536
1846
  34
1537
- 7
1538
- 35
1539
1847
  63
1540
- 3
1848
+ 2
1541
1849
  47
1542
1850
  49
1543
- 23
1851
+ 22
1544
1852
  1
1545
1853
  8
1546
- 459
1854
+ 462
1547
1855
  1
1548
1856
  15
1549
1857
  20
1550
1858
  1
1551
1859
  7
1552
- 36
1860
+ 35
1553
1861
  64
1554
1862
  49
1555
- 37
1863
+ 36
1556
1864
  1
1557
1865
  19
1558
1866
  3
@@ -1560,7 +1868,7 @@ i
1560
1868
  20
1561
1869
  3
1562
1870
  49
1563
- 38
1871
+ 37
1564
1872
  0
1565
1873
  38
1566
1874
  16
@@ -1568,9 +1876,9 @@ i
1568
1876
  20
1569
1877
  3
1570
1878
  56
1571
- 39
1879
+ 38
1572
1880
  50
1573
- 40
1881
+ 39
1574
1882
  0
1575
1883
  15
1576
1884
  68
@@ -1588,7 +1896,7 @@ I
1588
1896
  0
1589
1897
  n
1590
1898
  p
1591
- 41
1899
+ 40
1592
1900
  x
1593
1901
  12
1594
1902
  @binary_size
@@ -1641,11 +1949,9 @@ x
1641
1949
  x
1642
1950
  2
1643
1951
  ==
1644
- I
1645
- 400
1646
1952
  x
1647
- 1
1648
- *
1953
+ 16
1954
+ @multibulk_limit
1649
1955
  x
1650
1956
  1
1651
1957
  >
@@ -1676,25 +1982,26 @@ s
1676
1982
  x
1677
1983
  1
1678
1984
  <
1679
- I
1680
- 200
1985
+ x
1986
+ 11
1987
+ @bulk_limit
1681
1988
  s
1682
1989
  19
1683
1990
  invalid bulk length
1684
1991
  s
1685
- 19
1686
- expected '$', got '
1992
+ 18
1993
+ expected "$", got
1687
1994
  x
1688
1995
  3
1689
1996
  chr
1690
1997
  x
1691
1998
  4
1999
+ dump
2000
+ x
2001
+ 4
1692
2002
  to_s
1693
2003
  s
1694
2004
  1
1695
- '
1696
- s
1697
- 1
1698
2005
 
1699
2006
  x
1700
2007
  5
@@ -1741,7 +2048,7 @@ p
1741
2048
  I
1742
2049
  0
1743
2050
  I
1744
- 74
2051
+ 7c
1745
2052
  I
1746
2053
  9
1747
2054
  x
@@ -1756,27 +2063,27 @@ x
1756
2063
  4
1757
2064
  each
1758
2065
  p
1759
- 101
2066
+ 107
1760
2067
  I
1761
2068
  -1
1762
2069
  I
1763
- 47
2070
+ 4c
1764
2071
  I
1765
2072
  0
1766
2073
  I
1767
- 48
2074
+ 4d
1768
2075
  I
1769
2076
  3
1770
2077
  I
1771
- 49
2078
+ 4e
1772
2079
  I
1773
2080
  7
1774
2081
  I
1775
- 4a
2082
+ 4f
1776
2083
  I
1777
2084
  11
1778
2085
  I
1779
- 4b
2086
+ 50
1780
2087
  I
1781
2088
  1b
1782
2089
  I
@@ -1784,19 +2091,19 @@ I
1784
2091
  I
1785
2092
  1c
1786
2093
  I
1787
- 4c
2094
+ 51
1788
2095
  I
1789
2096
  20
1790
2097
  I
1791
- 4d
2098
+ 52
1792
2099
  I
1793
2100
  26
1794
2101
  I
1795
- 4f
2102
+ 54
1796
2103
  I
1797
2104
  2c
1798
2105
  I
1799
- 50
2106
+ 55
1800
2107
  I
1801
2108
  36
1802
2109
  I
@@ -1804,161 +2111,173 @@ I
1804
2111
  I
1805
2112
  37
1806
2113
  I
1807
- 51
2114
+ 56
1808
2115
  I
1809
2116
  44
1810
2117
  I
1811
- 52
2118
+ 57
1812
2119
  I
1813
2120
  4f
1814
2121
  I
1815
- 53
2122
+ 58
1816
2123
  I
1817
2124
  85
1818
2125
  I
1819
- 54
2126
+ 59
1820
2127
  I
1821
2128
  90
1822
2129
  I
1823
- 55
2130
+ 5a
1824
2131
  I
1825
2132
  a1
1826
2133
  I
1827
- 56
2134
+ 5b
1828
2135
  I
1829
2136
  ac
1830
2137
  I
1831
- 57
2138
+ 5c
1832
2139
  I
1833
2140
  c0
1834
2141
  I
1835
- 58
2142
+ 5d
1836
2143
  I
1837
2144
  cb
1838
2145
  I
1839
- 59
2146
+ 5e
1840
2147
  I
1841
2148
  d0
1842
2149
  I
1843
- 5a
2150
+ 5f
1844
2151
  I
1845
2152
  e3
1846
2153
  I
1847
- 5b
2154
+ 60
1848
2155
  I
1849
2156
  ea
1850
2157
  I
1851
- 5c
2158
+ 61
1852
2159
  I
1853
- ef
2160
+ ee
1854
2161
  I
1855
- 5d
2162
+ 62
1856
2163
  I
1857
- fc
2164
+ f4
1858
2165
  I
1859
- 5e
2166
+ 63
2167
+ I
2168
+ fb
2169
+ I
2170
+ 64
1860
2171
  I
1861
2172
  100
1862
2173
  I
1863
- 5f
2174
+ 65
1864
2175
  I
1865
- 10a
2176
+ 108
1866
2177
  I
1867
- 60
2178
+ 66
1868
2179
  I
1869
- 111
2180
+ 10c
1870
2181
  I
1871
- 61
2182
+ 67
2183
+ I
2184
+ 116
2185
+ I
2186
+ 68
1872
2187
  I
1873
2188
  11d
1874
2189
  I
1875
- 62
2190
+ 69
1876
2191
  I
1877
- 123
2192
+ 129
1878
2193
  I
1879
- 60
2194
+ 6a
2195
+ I
2196
+ 12f
1880
2197
  I
1881
- 124
2198
+ 68
2199
+ I
2200
+ 130
1882
2201
  I
1883
2202
  0
1884
2203
  I
1885
- 126
2204
+ 132
1886
2205
  I
1887
- 64
2206
+ 6c
1888
2207
  I
1889
- 131
2208
+ 13d
1890
2209
  I
1891
- 65
2210
+ 6d
1892
2211
  I
1893
- 144
2212
+ 150
1894
2213
  I
1895
- 66
2214
+ 6e
1896
2215
  I
1897
- 14b
2216
+ 157
1898
2217
  I
1899
- 67
2218
+ 6f
1900
2219
  I
1901
- 14f
2220
+ 15b
1902
2221
  I
1903
- 68
2222
+ 70
1904
2223
  I
1905
- 154
2224
+ 160
1906
2225
  I
1907
- 69
2226
+ 71
1908
2227
  I
1909
- 194
2228
+ 196
1910
2229
  I
1911
- 6a
2230
+ 72
1912
2231
  I
1913
- 198
2232
+ 19a
1914
2233
  I
1915
- 6b
2234
+ 73
1916
2235
  I
1917
- 1a2
2236
+ 1a4
1918
2237
  I
1919
- 69
2238
+ 71
1920
2239
  I
1921
- 1a3
2240
+ 1a5
1922
2241
  I
1923
2242
  0
1924
2243
  I
1925
- 1a6
2244
+ 1a8
1926
2245
  I
1927
- 6e
2246
+ 76
1928
2247
  I
1929
- 1ad
2248
+ 1af
1930
2249
  I
1931
- 6f
2250
+ 77
1932
2251
  I
1933
- 1b1
2252
+ 1b3
1934
2253
  I
1935
- 70
2254
+ 78
1936
2255
  I
1937
- 1ca
2256
+ 1cd
1938
2257
  I
1939
- 6e
2258
+ 76
1940
2259
  I
1941
- 1cb
2260
+ 1ce
1942
2261
  I
1943
2262
  0
1944
2263
  I
1945
- 1cc
2264
+ 1cf
1946
2265
  I
1947
- 72
2266
+ 7a
1948
2267
  I
1949
- 1d7
2268
+ 1da
1950
2269
  I
1951
- 73
2270
+ 7b
1952
2271
  I
1953
- 1df
2272
+ 1e2
1954
2273
  I
1955
- 74
2274
+ 7c
1956
2275
  I
1957
- 1e6
2276
+ 1e9
1958
2277
  I
1959
2278
  0
1960
2279
  I
1961
- 1ec
2280
+ 1ef
1962
2281
  x
1963
2282
  52
1964
2283
  /Users/dturnbull/ruby/ruby-redis/lib/redis/reader.rb
@@ -2308,7 +2627,7 @@ p
2308
2627
  I
2309
2628
  0
2310
2629
  I
2311
- 85
2630
+ 8d
2312
2631
  I
2313
2632
  14
2314
2633
  x
@@ -2357,23 +2676,23 @@ p
2357
2676
  I
2358
2677
  -1
2359
2678
  I
2360
- 7b
2679
+ 83
2361
2680
  I
2362
2681
  0
2363
2682
  I
2364
- 7c
2683
+ 84
2365
2684
  I
2366
2685
  4
2367
2686
  I
2368
- 7d
2687
+ 85
2369
2688
  I
2370
2689
  13
2371
2690
  I
2372
- 7e
2691
+ 86
2373
2692
  I
2374
2693
  28
2375
2694
  I
2376
- 7f
2695
+ 87
2377
2696
  I
2378
2697
  38
2379
2698
  I
@@ -2381,11 +2700,11 @@ I
2381
2700
  I
2382
2701
  39
2383
2702
  I
2384
- 80
2703
+ 88
2385
2704
  I
2386
2705
  3e
2387
2706
  I
2388
- 7d
2707
+ 85
2389
2708
  I
2390
2709
  3f
2391
2710
  I
@@ -2393,11 +2712,11 @@ I
2393
2712
  I
2394
2713
  40
2395
2714
  I
2396
- 82
2715
+ 8a
2397
2716
  I
2398
2717
  45
2399
2718
  I
2400
- 7c
2719
+ 84
2401
2720
  I
2402
2721
  46
2403
2722
  I
@@ -2405,15 +2724,15 @@ I
2405
2724
  I
2406
2725
  47
2407
2726
  I
2408
- 84
2727
+ 8c
2409
2728
  I
2410
2729
  4e
2411
2730
  I
2412
- 85
2731
+ 8d
2413
2732
  I
2414
2733
  59
2415
2734
  I
2416
- 86
2735
+ 8e
2417
2736
  I
2418
2737
  67
2419
2738
  I
@@ -2421,35 +2740,35 @@ I
2421
2740
  I
2422
2741
  68
2423
2742
  I
2424
- 87
2743
+ 8f
2425
2744
  I
2426
2745
  6e
2427
2746
  I
2428
- 88
2747
+ 90
2429
2748
  I
2430
2749
  72
2431
2750
  I
2432
- 89
2751
+ 91
2433
2752
  I
2434
2753
  7b
2435
2754
  I
2436
- 8a
2755
+ 92
2437
2756
  I
2438
2757
  82
2439
2758
  I
2440
- 8b
2759
+ 93
2441
2760
  I
2442
2761
  8b
2443
2762
  I
2444
- 8c
2763
+ 94
2445
2764
  I
2446
2765
  a8
2447
2766
  I
2448
- 8d
2767
+ 95
2449
2768
  I
2450
2769
  c0
2451
2770
  I
2452
- 8a
2771
+ 92
2453
2772
  I
2454
2773
  c1
2455
2774
  I
@@ -2457,7 +2776,7 @@ I
2457
2776
  I
2458
2777
  c2
2459
2778
  I
2460
- 91
2779
+ 99
2461
2780
  I
2462
2781
  cc
2463
2782
  I
@@ -2465,15 +2784,15 @@ I
2465
2784
  I
2466
2785
  cd
2467
2786
  I
2468
- 92
2787
+ 9a
2469
2788
  I
2470
2789
  d5
2471
2790
  I
2472
- 93
2791
+ 9b
2473
2792
  I
2474
2793
  d9
2475
2794
  I
2476
- 94
2795
+ 9c
2477
2796
  I
2478
2797
  dc
2479
2798
  x
@@ -2631,19 +2950,19 @@ p
2631
2950
  I
2632
2951
  -1
2633
2952
  I
2634
- 98
2953
+ a0
2635
2954
  I
2636
2955
  0
2637
2956
  I
2638
- 99
2957
+ a1
2639
2958
  I
2640
2959
  7
2641
2960
  I
2642
- 9a
2961
+ a2
2643
2962
  I
2644
2963
  14
2645
2964
  I
2646
- 9b
2965
+ a3
2647
2966
  I
2648
2967
  17
2649
2968
  I
@@ -2651,15 +2970,15 @@ I
2651
2970
  I
2652
2971
  18
2653
2972
  I
2654
- 9d
2973
+ a5
2655
2974
  I
2656
2975
  22
2657
2976
  I
2658
- 9e
2977
+ a6
2659
2978
  I
2660
2979
  31
2661
2980
  I
2662
- a0
2981
+ a8
2663
2982
  I
2664
2983
  34
2665
2984
  I
@@ -2667,7 +2986,7 @@ I
2667
2986
  I
2668
2987
  35
2669
2988
  I
2670
- a2
2989
+ aa
2671
2990
  I
2672
2991
  45
2673
2992
  I
@@ -2675,7 +2994,7 @@ I
2675
2994
  I
2676
2995
  46
2677
2996
  I
2678
- a3
2997
+ ab
2679
2998
  I
2680
2999
  49
2681
3000
  x
@@ -2691,39 +3010,39 @@ p
2691
3010
  I
2692
3011
  2
2693
3012
  I
2694
- e
3013
+ 8
2695
3014
  I
2696
3015
  10
2697
3016
  I
2698
- 13
3017
+ 10
2699
3018
  I
2700
3019
  1e
2701
3020
  I
2702
- 1b
3021
+ 1a
2703
3022
  I
2704
3023
  2c
2705
3024
  I
2706
- 34
3025
+ 39
2707
3026
  I
2708
3027
  30
2709
3028
  I
2710
- 36
3029
+ 3b
2711
3030
  I
2712
3031
  3e
2713
3032
  I
2714
- 41
3033
+ 46
2715
3034
  I
2716
3035
  4c
2717
3036
  I
2718
- 47
3037
+ 4c
2719
3038
  I
2720
3039
  5a
2721
3040
  I
2722
- 7b
3041
+ 83
2723
3042
  I
2724
3043
  68
2725
3044
  I
2726
- 98
3045
+ a0
2727
3046
  I
2728
3047
  76
2729
3048
  x
@@ -2739,7 +3058,7 @@ p
2739
3058
  I
2740
3059
  2
2741
3060
  I
2742
- 6
3061
+ 2
2743
3062
  I
2744
3063
  1f
2745
3064
  x
@@ -2751,17 +3070,13 @@ x
2751
3070
  13
2752
3071
  attach_method
2753
3072
  p
2754
- 5
3073
+ 3
2755
3074
  I
2756
3075
  0
2757
3076
  I
2758
3077
  1
2759
3078
  I
2760
- 19
2761
- I
2762
- 3
2763
- I
2764
- 36
3079
+ 1c
2765
3080
  x
2766
3081
  52
2767
3082
  /Users/dturnbull/ruby/ruby-redis/lib/redis/reader.rb