gorsuch-redis 3.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. data/.gitignore +10 -0
  2. data/.yardopts +3 -0
  3. data/CHANGELOG.md +113 -0
  4. data/LICENSE +20 -0
  5. data/README.md +214 -0
  6. data/Rakefile +260 -0
  7. data/TODO.md +4 -0
  8. data/benchmarking/logging.rb +62 -0
  9. data/benchmarking/pipeline.rb +51 -0
  10. data/benchmarking/speed.rb +21 -0
  11. data/benchmarking/suite.rb +24 -0
  12. data/benchmarking/thread_safety.rb +38 -0
  13. data/benchmarking/worker.rb +71 -0
  14. data/examples/basic.rb +15 -0
  15. data/examples/dist_redis.rb +43 -0
  16. data/examples/incr-decr.rb +17 -0
  17. data/examples/list.rb +26 -0
  18. data/examples/pubsub.rb +31 -0
  19. data/examples/sets.rb +36 -0
  20. data/examples/unicorn/config.ru +3 -0
  21. data/examples/unicorn/unicorn.rb +20 -0
  22. data/lib/redis/client.rb +303 -0
  23. data/lib/redis/connection/command_helper.rb +44 -0
  24. data/lib/redis/connection/hiredis.rb +52 -0
  25. data/lib/redis/connection/registry.rb +12 -0
  26. data/lib/redis/connection/ruby.rb +136 -0
  27. data/lib/redis/connection/synchrony.rb +131 -0
  28. data/lib/redis/connection.rb +9 -0
  29. data/lib/redis/distributed.rb +696 -0
  30. data/lib/redis/errors.rb +38 -0
  31. data/lib/redis/hash_ring.rb +131 -0
  32. data/lib/redis/pipeline.rb +106 -0
  33. data/lib/redis/subscribe.rb +79 -0
  34. data/lib/redis/version.rb +3 -0
  35. data/lib/redis.rb +1724 -0
  36. data/redis.gemspec +43 -0
  37. data/test/command_map_test.rb +29 -0
  38. data/test/commands_on_hashes_test.rb +20 -0
  39. data/test/commands_on_lists_test.rb +60 -0
  40. data/test/commands_on_sets_test.rb +76 -0
  41. data/test/commands_on_sorted_sets_test.rb +108 -0
  42. data/test/commands_on_strings_test.rb +80 -0
  43. data/test/commands_on_value_types_test.rb +87 -0
  44. data/test/connection_handling_test.rb +204 -0
  45. data/test/db/.gitignore +1 -0
  46. data/test/distributed_blocking_commands_test.rb +53 -0
  47. data/test/distributed_commands_on_hashes_test.rb +11 -0
  48. data/test/distributed_commands_on_lists_test.rb +23 -0
  49. data/test/distributed_commands_on_sets_test.rb +84 -0
  50. data/test/distributed_commands_on_sorted_sets_test.rb +19 -0
  51. data/test/distributed_commands_on_strings_test.rb +49 -0
  52. data/test/distributed_commands_on_value_types_test.rb +72 -0
  53. data/test/distributed_commands_requiring_clustering_test.rb +148 -0
  54. data/test/distributed_connection_handling_test.rb +24 -0
  55. data/test/distributed_internals_test.rb +27 -0
  56. data/test/distributed_key_tags_test.rb +52 -0
  57. data/test/distributed_persistence_control_commands_test.rb +23 -0
  58. data/test/distributed_publish_subscribe_test.rb +100 -0
  59. data/test/distributed_remote_server_control_commands_test.rb +42 -0
  60. data/test/distributed_sorting_test.rb +21 -0
  61. data/test/distributed_test.rb +59 -0
  62. data/test/distributed_transactions_test.rb +33 -0
  63. data/test/encoding_test.rb +15 -0
  64. data/test/error_replies_test.rb +53 -0
  65. data/test/helper.rb +155 -0
  66. data/test/helper_test.rb +8 -0
  67. data/test/internals_test.rb +152 -0
  68. data/test/lint/hashes.rb +140 -0
  69. data/test/lint/internals.rb +36 -0
  70. data/test/lint/lists.rb +107 -0
  71. data/test/lint/sets.rb +90 -0
  72. data/test/lint/sorted_sets.rb +196 -0
  73. data/test/lint/strings.rb +133 -0
  74. data/test/lint/value_types.rb +81 -0
  75. data/test/persistence_control_commands_test.rb +21 -0
  76. data/test/pipelining_commands_test.rb +186 -0
  77. data/test/publish_subscribe_test.rb +158 -0
  78. data/test/redis_mock.rb +89 -0
  79. data/test/remote_server_control_commands_test.rb +88 -0
  80. data/test/sorting_test.rb +43 -0
  81. data/test/synchrony_driver.rb +57 -0
  82. data/test/test.conf +9 -0
  83. data/test/thread_safety_test.rb +30 -0
  84. data/test/transactions_test.rb +173 -0
  85. data/test/unknown_commands_test.rb +13 -0
  86. data/test/url_param_test.rb +59 -0
  87. metadata +236 -0
@@ -0,0 +1,13 @@
1
+ # encoding: UTF-8
2
+
3
+ require File.expand_path("./helper", File.dirname(__FILE__))
4
+
5
+ setup do
6
+ init Redis.new(OPTIONS)
7
+ end
8
+
9
+ test "should try to work" do |r|
10
+ assert_raise Redis::CommandError do
11
+ r.not_yet_implemented_command
12
+ end
13
+ end
@@ -0,0 +1,59 @@
1
+ # encoding: UTF-8
2
+
3
+ require File.expand_path("./helper", File.dirname(__FILE__))
4
+
5
+ test "URL defaults to 127.0.0.1:6379" do
6
+ redis = Redis.connect
7
+
8
+ assert "127.0.0.1" == redis.client.host
9
+ assert 6379 == redis.client.port
10
+ assert 0 == redis.client.db
11
+ assert nil == redis.client.password
12
+ end
13
+
14
+ test "allows to pass in a URL" do
15
+ redis = Redis.connect :url => "redis://:secr3t@foo.com:999/2"
16
+
17
+ assert "foo.com" == redis.client.host
18
+ assert 999 == redis.client.port
19
+ assert 2 == redis.client.db
20
+ assert "secr3t" == redis.client.password
21
+ end
22
+
23
+ test "override URL if path option is passed" do
24
+ redis = Redis.connect :url => "redis://:secr3t@foo.com/foo:999/2", :path => "/tmp/redis.sock"
25
+
26
+ assert "/tmp/redis.sock" == redis.client.path
27
+ assert nil == redis.client.host
28
+ assert nil == redis.client.port
29
+ end
30
+
31
+ test "overrides URL if another connection option is passed" do
32
+ redis = Redis.connect :url => "redis://:secr3t@foo.com:999/2", :port => 1000
33
+
34
+ assert "foo.com" == redis.client.host
35
+ assert 1000 == redis.client.port
36
+ assert 2 == redis.client.db
37
+ assert "secr3t" == redis.client.password
38
+ end
39
+
40
+ test "does not modify the passed options" do
41
+ options = { :url => "redis://:secr3t@foo.com:999/2" }
42
+
43
+ redis = Redis.connect(options)
44
+
45
+ assert({ :url => "redis://:secr3t@foo.com:999/2" } == options)
46
+ end
47
+
48
+ test "uses REDIS_URL over default if available" do
49
+ ENV["REDIS_URL"] = "redis://:secr3t@foo.com:999/2"
50
+
51
+ redis = Redis.connect
52
+
53
+ assert "foo.com" == redis.client.host
54
+ assert 999 == redis.client.port
55
+ assert 2 == redis.client.db
56
+ assert "secr3t" == redis.client.password
57
+
58
+ ENV.delete("REDIS_URL")
59
+ end
metadata ADDED
@@ -0,0 +1,236 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gorsuch-redis
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.0.rc1
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Ezra Zygmuntowicz
9
+ - Taylor Weibley
10
+ - Matthew Clark
11
+ - Brian McKinney
12
+ - Salvatore Sanfilippo
13
+ - Luca Guidi
14
+ - Michel Martens
15
+ - Damian Janowski
16
+ - Pieter Noordhuis
17
+ autorequire:
18
+ bindir: bin
19
+ cert_chain: []
20
+ date: 2012-04-03 00:00:00.000000000 Z
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ name: rake
24
+ requirement: &70190528581140 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ type: :development
31
+ prerelease: false
32
+ version_requirements: *70190528581140
33
+ - !ruby/object:Gem::Dependency
34
+ name: cutest
35
+ requirement: &70190528594160 !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: *70190528594160
44
+ - !ruby/object:Gem::Dependency
45
+ name: hiredis
46
+ requirement: &70190528592840 !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ! '>='
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ type: :development
53
+ prerelease: false
54
+ version_requirements: *70190528592840
55
+ - !ruby/object:Gem::Dependency
56
+ name: em-synchrony
57
+ requirement: &70190528590400 !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: *70190528590400
66
+ description: ! " A simple Ruby client trying to match Redis' API one-to-one while
67
+ still providing a Rubystic interface.\n It features thread safety, client-side
68
+ sharding, and an obsession for performance.\n"
69
+ email:
70
+ - redis-db@googlegroups.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - .gitignore
76
+ - .yardopts
77
+ - CHANGELOG.md
78
+ - LICENSE
79
+ - README.md
80
+ - Rakefile
81
+ - TODO.md
82
+ - benchmarking/logging.rb
83
+ - benchmarking/pipeline.rb
84
+ - benchmarking/speed.rb
85
+ - benchmarking/suite.rb
86
+ - benchmarking/thread_safety.rb
87
+ - benchmarking/worker.rb
88
+ - examples/basic.rb
89
+ - examples/dist_redis.rb
90
+ - examples/incr-decr.rb
91
+ - examples/list.rb
92
+ - examples/pubsub.rb
93
+ - examples/sets.rb
94
+ - examples/unicorn/config.ru
95
+ - examples/unicorn/unicorn.rb
96
+ - lib/redis.rb
97
+ - lib/redis/client.rb
98
+ - lib/redis/connection.rb
99
+ - lib/redis/connection/command_helper.rb
100
+ - lib/redis/connection/hiredis.rb
101
+ - lib/redis/connection/registry.rb
102
+ - lib/redis/connection/ruby.rb
103
+ - lib/redis/connection/synchrony.rb
104
+ - lib/redis/distributed.rb
105
+ - lib/redis/errors.rb
106
+ - lib/redis/hash_ring.rb
107
+ - lib/redis/pipeline.rb
108
+ - lib/redis/subscribe.rb
109
+ - lib/redis/version.rb
110
+ - redis.gemspec
111
+ - test/command_map_test.rb
112
+ - test/commands_on_hashes_test.rb
113
+ - test/commands_on_lists_test.rb
114
+ - test/commands_on_sets_test.rb
115
+ - test/commands_on_sorted_sets_test.rb
116
+ - test/commands_on_strings_test.rb
117
+ - test/commands_on_value_types_test.rb
118
+ - test/connection_handling_test.rb
119
+ - test/db/.gitignore
120
+ - test/distributed_blocking_commands_test.rb
121
+ - test/distributed_commands_on_hashes_test.rb
122
+ - test/distributed_commands_on_lists_test.rb
123
+ - test/distributed_commands_on_sets_test.rb
124
+ - test/distributed_commands_on_sorted_sets_test.rb
125
+ - test/distributed_commands_on_strings_test.rb
126
+ - test/distributed_commands_on_value_types_test.rb
127
+ - test/distributed_commands_requiring_clustering_test.rb
128
+ - test/distributed_connection_handling_test.rb
129
+ - test/distributed_internals_test.rb
130
+ - test/distributed_key_tags_test.rb
131
+ - test/distributed_persistence_control_commands_test.rb
132
+ - test/distributed_publish_subscribe_test.rb
133
+ - test/distributed_remote_server_control_commands_test.rb
134
+ - test/distributed_sorting_test.rb
135
+ - test/distributed_test.rb
136
+ - test/distributed_transactions_test.rb
137
+ - test/encoding_test.rb
138
+ - test/error_replies_test.rb
139
+ - test/helper.rb
140
+ - test/helper_test.rb
141
+ - test/internals_test.rb
142
+ - test/lint/hashes.rb
143
+ - test/lint/internals.rb
144
+ - test/lint/lists.rb
145
+ - test/lint/sets.rb
146
+ - test/lint/sorted_sets.rb
147
+ - test/lint/strings.rb
148
+ - test/lint/value_types.rb
149
+ - test/persistence_control_commands_test.rb
150
+ - test/pipelining_commands_test.rb
151
+ - test/publish_subscribe_test.rb
152
+ - test/redis_mock.rb
153
+ - test/remote_server_control_commands_test.rb
154
+ - test/sorting_test.rb
155
+ - test/synchrony_driver.rb
156
+ - test/test.conf
157
+ - test/thread_safety_test.rb
158
+ - test/transactions_test.rb
159
+ - test/unknown_commands_test.rb
160
+ - test/url_param_test.rb
161
+ homepage: https://github.com/ezmobius/redis-rb
162
+ licenses: []
163
+ post_install_message:
164
+ rdoc_options: []
165
+ require_paths:
166
+ - lib
167
+ required_ruby_version: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ required_rubygems_version: !ruby/object:Gem::Requirement
174
+ none: false
175
+ requirements:
176
+ - - ! '>'
177
+ - !ruby/object:Gem::Version
178
+ version: 1.3.1
179
+ requirements: []
180
+ rubyforge_project:
181
+ rubygems_version: 1.8.10
182
+ signing_key:
183
+ specification_version: 3
184
+ summary: A Ruby client library for the Redis key-value store.
185
+ test_files:
186
+ - test/command_map_test.rb
187
+ - test/commands_on_hashes_test.rb
188
+ - test/commands_on_lists_test.rb
189
+ - test/commands_on_sets_test.rb
190
+ - test/commands_on_sorted_sets_test.rb
191
+ - test/commands_on_strings_test.rb
192
+ - test/commands_on_value_types_test.rb
193
+ - test/connection_handling_test.rb
194
+ - test/db/.gitignore
195
+ - test/distributed_blocking_commands_test.rb
196
+ - test/distributed_commands_on_hashes_test.rb
197
+ - test/distributed_commands_on_lists_test.rb
198
+ - test/distributed_commands_on_sets_test.rb
199
+ - test/distributed_commands_on_sorted_sets_test.rb
200
+ - test/distributed_commands_on_strings_test.rb
201
+ - test/distributed_commands_on_value_types_test.rb
202
+ - test/distributed_commands_requiring_clustering_test.rb
203
+ - test/distributed_connection_handling_test.rb
204
+ - test/distributed_internals_test.rb
205
+ - test/distributed_key_tags_test.rb
206
+ - test/distributed_persistence_control_commands_test.rb
207
+ - test/distributed_publish_subscribe_test.rb
208
+ - test/distributed_remote_server_control_commands_test.rb
209
+ - test/distributed_sorting_test.rb
210
+ - test/distributed_test.rb
211
+ - test/distributed_transactions_test.rb
212
+ - test/encoding_test.rb
213
+ - test/error_replies_test.rb
214
+ - test/helper.rb
215
+ - test/helper_test.rb
216
+ - test/internals_test.rb
217
+ - test/lint/hashes.rb
218
+ - test/lint/internals.rb
219
+ - test/lint/lists.rb
220
+ - test/lint/sets.rb
221
+ - test/lint/sorted_sets.rb
222
+ - test/lint/strings.rb
223
+ - test/lint/value_types.rb
224
+ - test/persistence_control_commands_test.rb
225
+ - test/pipelining_commands_test.rb
226
+ - test/publish_subscribe_test.rb
227
+ - test/redis_mock.rb
228
+ - test/remote_server_control_commands_test.rb
229
+ - test/sorting_test.rb
230
+ - test/synchrony_driver.rb
231
+ - test/test.conf
232
+ - test/thread_safety_test.rb
233
+ - test/transactions_test.rb
234
+ - test/unknown_commands_test.rb
235
+ - test/url_param_test.rb
236
+ has_rdoc: