modesty 0.1.0

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.
Files changed (130) hide show
  1. data/Gemfile +13 -0
  2. data/Gemfile.lock +18 -0
  3. data/LICENSE +21 -0
  4. data/README.md +121 -0
  5. data/Rakefile +29 -0
  6. data/VERSION +1 -0
  7. data/init.rb +1 -0
  8. data/lib/modesty.rb +26 -0
  9. data/lib/modesty/api.rb +14 -0
  10. data/lib/modesty/core_ext.rb +5 -0
  11. data/lib/modesty/core_ext/array.rb +21 -0
  12. data/lib/modesty/core_ext/fixnum.rb +5 -0
  13. data/lib/modesty/core_ext/hash.rb +39 -0
  14. data/lib/modesty/core_ext/string.rb +9 -0
  15. data/lib/modesty/core_ext/symbol.rb +33 -0
  16. data/lib/modesty/datastore.rb +51 -0
  17. data/lib/modesty/datastore/redis.rb +180 -0
  18. data/lib/modesty/experiment.rb +87 -0
  19. data/lib/modesty/experiment/base.rb +47 -0
  20. data/lib/modesty/experiment/builder.rb +48 -0
  21. data/lib/modesty/experiment/console.rb +4 -0
  22. data/lib/modesty/experiment/data.rb +75 -0
  23. data/lib/modesty/experiment/interface.rb +29 -0
  24. data/lib/modesty/experiment/significance.rb +376 -0
  25. data/lib/modesty/experiment/stats.rb +163 -0
  26. data/lib/modesty/frameworks/rails.rb +27 -0
  27. data/lib/modesty/identity.rb +32 -0
  28. data/lib/modesty/load.rb +80 -0
  29. data/lib/modesty/load/load_experiments.rb +14 -0
  30. data/lib/modesty/load/load_metrics.rb +17 -0
  31. data/lib/modesty/metric.rb +56 -0
  32. data/lib/modesty/metric/base.rb +38 -0
  33. data/lib/modesty/metric/builder.rb +23 -0
  34. data/lib/modesty/metric/data.rb +133 -0
  35. data/modesty.gemspec +192 -0
  36. data/spec/core_ext_spec.rb +17 -0
  37. data/spec/experiment_spec.rb +239 -0
  38. data/spec/identity_spec.rb +161 -0
  39. data/spec/load_spec.rb +87 -0
  40. data/spec/metric_spec.rb +176 -0
  41. data/spec/rails_spec.rb +48 -0
  42. data/spec/redis_spec.rb +29 -0
  43. data/spec/significance_spec.rb +147 -0
  44. data/spec/spec.opts +1 -0
  45. data/test/myapp/config/modesty.yml +9 -0
  46. data/test/myapp/modesty/experiments/cookbook.rb +4 -0
  47. data/test/myapp/modesty/metrics/kitchen_metrics.rb +9 -0
  48. data/test/myapp/modesty/metrics/stove/burner_metrics.rb +2 -0
  49. data/vendor/.piston.yml +8 -0
  50. data/vendor/mock_redis/.gitignore +2 -0
  51. data/vendor/mock_redis/README +8 -0
  52. data/vendor/mock_redis/lib/mock_redis.rb +10 -0
  53. data/vendor/mock_redis/lib/mock_redis/hash.rb +61 -0
  54. data/vendor/mock_redis/lib/mock_redis/list.rb +6 -0
  55. data/vendor/mock_redis/lib/mock_redis/misc.rb +69 -0
  56. data/vendor/mock_redis/lib/mock_redis/set.rb +108 -0
  57. data/vendor/mock_redis/lib/mock_redis/string.rb +32 -0
  58. data/vendor/redis-rb/.gitignore +8 -0
  59. data/vendor/redis-rb/LICENSE +20 -0
  60. data/vendor/redis-rb/README.markdown +129 -0
  61. data/vendor/redis-rb/Rakefile +155 -0
  62. data/vendor/redis-rb/benchmarking/logging.rb +62 -0
  63. data/vendor/redis-rb/benchmarking/pipeline.rb +51 -0
  64. data/vendor/redis-rb/benchmarking/speed.rb +21 -0
  65. data/vendor/redis-rb/benchmarking/suite.rb +24 -0
  66. data/vendor/redis-rb/benchmarking/thread_safety.rb +38 -0
  67. data/vendor/redis-rb/benchmarking/worker.rb +71 -0
  68. data/vendor/redis-rb/examples/basic.rb +15 -0
  69. data/vendor/redis-rb/examples/dist_redis.rb +43 -0
  70. data/vendor/redis-rb/examples/incr-decr.rb +17 -0
  71. data/vendor/redis-rb/examples/list.rb +26 -0
  72. data/vendor/redis-rb/examples/pubsub.rb +31 -0
  73. data/vendor/redis-rb/examples/sets.rb +36 -0
  74. data/vendor/redis-rb/examples/unicorn/config.ru +3 -0
  75. data/vendor/redis-rb/examples/unicorn/unicorn.rb +20 -0
  76. data/vendor/redis-rb/lib/redis.rb +676 -0
  77. data/vendor/redis-rb/lib/redis/client.rb +201 -0
  78. data/vendor/redis-rb/lib/redis/compat.rb +21 -0
  79. data/vendor/redis-rb/lib/redis/connection.rb +134 -0
  80. data/vendor/redis-rb/lib/redis/distributed.rb +526 -0
  81. data/vendor/redis-rb/lib/redis/hash_ring.rb +131 -0
  82. data/vendor/redis-rb/lib/redis/pipeline.rb +13 -0
  83. data/vendor/redis-rb/lib/redis/subscribe.rb +79 -0
  84. data/vendor/redis-rb/redis.gemspec +29 -0
  85. data/vendor/redis-rb/test/commands_on_hashes_test.rb +46 -0
  86. data/vendor/redis-rb/test/commands_on_lists_test.rb +50 -0
  87. data/vendor/redis-rb/test/commands_on_sets_test.rb +78 -0
  88. data/vendor/redis-rb/test/commands_on_sorted_sets_test.rb +109 -0
  89. data/vendor/redis-rb/test/commands_on_strings_test.rb +70 -0
  90. data/vendor/redis-rb/test/commands_on_value_types_test.rb +88 -0
  91. data/vendor/redis-rb/test/connection_handling_test.rb +87 -0
  92. data/vendor/redis-rb/test/db/.gitignore +1 -0
  93. data/vendor/redis-rb/test/distributd_key_tags_test.rb +53 -0
  94. data/vendor/redis-rb/test/distributed_blocking_commands_test.rb +54 -0
  95. data/vendor/redis-rb/test/distributed_commands_on_hashes_test.rb +12 -0
  96. data/vendor/redis-rb/test/distributed_commands_on_lists_test.rb +18 -0
  97. data/vendor/redis-rb/test/distributed_commands_on_sets_test.rb +85 -0
  98. data/vendor/redis-rb/test/distributed_commands_on_strings_test.rb +50 -0
  99. data/vendor/redis-rb/test/distributed_commands_on_value_types_test.rb +73 -0
  100. data/vendor/redis-rb/test/distributed_commands_requiring_clustering_test.rb +141 -0
  101. data/vendor/redis-rb/test/distributed_connection_handling_test.rb +25 -0
  102. data/vendor/redis-rb/test/distributed_internals_test.rb +18 -0
  103. data/vendor/redis-rb/test/distributed_persistence_control_commands_test.rb +24 -0
  104. data/vendor/redis-rb/test/distributed_publish_subscribe_test.rb +90 -0
  105. data/vendor/redis-rb/test/distributed_remote_server_control_commands_test.rb +31 -0
  106. data/vendor/redis-rb/test/distributed_sorting_test.rb +21 -0
  107. data/vendor/redis-rb/test/distributed_test.rb +60 -0
  108. data/vendor/redis-rb/test/distributed_transactions_test.rb +34 -0
  109. data/vendor/redis-rb/test/encoding_test.rb +16 -0
  110. data/vendor/redis-rb/test/helper.rb +86 -0
  111. data/vendor/redis-rb/test/internals_test.rb +27 -0
  112. data/vendor/redis-rb/test/lint/hashes.rb +90 -0
  113. data/vendor/redis-rb/test/lint/internals.rb +53 -0
  114. data/vendor/redis-rb/test/lint/lists.rb +93 -0
  115. data/vendor/redis-rb/test/lint/sets.rb +66 -0
  116. data/vendor/redis-rb/test/lint/sorted_sets.rb +132 -0
  117. data/vendor/redis-rb/test/lint/strings.rb +98 -0
  118. data/vendor/redis-rb/test/lint/value_types.rb +84 -0
  119. data/vendor/redis-rb/test/persistence_control_commands_test.rb +22 -0
  120. data/vendor/redis-rb/test/pipelining_commands_test.rb +78 -0
  121. data/vendor/redis-rb/test/publish_subscribe_test.rb +151 -0
  122. data/vendor/redis-rb/test/redis_mock.rb +64 -0
  123. data/vendor/redis-rb/test/remote_server_control_commands_test.rb +56 -0
  124. data/vendor/redis-rb/test/sorting_test.rb +44 -0
  125. data/vendor/redis-rb/test/test.conf +8 -0
  126. data/vendor/redis-rb/test/thread_safety_test.rb +34 -0
  127. data/vendor/redis-rb/test/transactions_test.rb +91 -0
  128. data/vendor/redis-rb/test/unknown_commands_test.rb +14 -0
  129. data/vendor/redis-rb/test/url_param_test.rb +52 -0
  130. metadata +277 -0
@@ -0,0 +1,14 @@
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 RuntimeError do
11
+ r.not_yet_implemented_command
12
+ end
13
+ end
14
+
@@ -0,0 +1,52 @@
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 "overrides URL if another connection option is passed" do
24
+ redis = Redis.connect :url => "redis://:secr3t@foo.com:999/2", :port => 1000
25
+
26
+ assert "foo.com" == redis.client.host
27
+ assert 1000 == redis.client.port
28
+ assert 2 == redis.client.db
29
+ assert "secr3t" == redis.client.password
30
+ end
31
+
32
+ test "does not modify the passed options" do
33
+ options = { :url => "redis://:secr3t@foo.com:999/2" }
34
+
35
+ redis = Redis.connect(options)
36
+
37
+ assert({ :url => "redis://:secr3t@foo.com:999/2" } == options)
38
+ end
39
+
40
+ test "uses REDIS_URL over default if available" do
41
+ ENV["REDIS_URL"] = "redis://:secr3t@foo.com:999/2"
42
+
43
+ redis = Redis.connect
44
+
45
+ assert "foo.com" == redis.client.host
46
+ assert 999 == redis.client.port
47
+ assert 2 == redis.client.db
48
+ assert "secr3t" == redis.client.password
49
+
50
+ ENV.delete("REDIS_URL")
51
+ end
52
+
metadata ADDED
@@ -0,0 +1,277 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: modesty
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Jay Adkisson
14
+ - Kevin Ball
15
+ - "Kristj\xC3\xA1n P\xC3\xA9tursson"
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2011-04-26 00:00:00 -05:00
21
+ default_executable:
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ type: :runtime
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
34
+ name: redis
35
+ version_requirements: *id001
36
+ prerelease: false
37
+ - !ruby/object:Gem::Dependency
38
+ type: :development
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ name: rake
49
+ version_requirements: *id002
50
+ prerelease: false
51
+ - !ruby/object:Gem::Dependency
52
+ type: :development
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
62
+ name: jeweler
63
+ version_requirements: *id003
64
+ prerelease: false
65
+ - !ruby/object:Gem::Dependency
66
+ type: :development
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ name: rspec
77
+ version_requirements: *id004
78
+ prerelease: false
79
+ - !ruby/object:Gem::Dependency
80
+ type: :runtime
81
+ requirement: &id005 !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ hash: 3
87
+ segments:
88
+ - 0
89
+ version: "0"
90
+ name: redis
91
+ version_requirements: *id005
92
+ prerelease: false
93
+ description: Modesty is simple and scalable split testing and event tracking framework. It was inspired by assaf's Vanity (github.com/assaf/vanity).
94
+ email: jay@causes.com
95
+ executables: []
96
+
97
+ extensions: []
98
+
99
+ extra_rdoc_files:
100
+ - LICENSE
101
+ - README.md
102
+ files:
103
+ - Gemfile
104
+ - Gemfile.lock
105
+ - LICENSE
106
+ - README.md
107
+ - Rakefile
108
+ - VERSION
109
+ - init.rb
110
+ - lib/modesty.rb
111
+ - lib/modesty/api.rb
112
+ - lib/modesty/core_ext.rb
113
+ - lib/modesty/core_ext/array.rb
114
+ - lib/modesty/core_ext/fixnum.rb
115
+ - lib/modesty/core_ext/hash.rb
116
+ - lib/modesty/core_ext/string.rb
117
+ - lib/modesty/core_ext/symbol.rb
118
+ - lib/modesty/datastore.rb
119
+ - lib/modesty/datastore/redis.rb
120
+ - lib/modesty/experiment.rb
121
+ - lib/modesty/experiment/base.rb
122
+ - lib/modesty/experiment/builder.rb
123
+ - lib/modesty/experiment/console.rb
124
+ - lib/modesty/experiment/data.rb
125
+ - lib/modesty/experiment/interface.rb
126
+ - lib/modesty/experiment/significance.rb
127
+ - lib/modesty/experiment/stats.rb
128
+ - lib/modesty/frameworks/rails.rb
129
+ - lib/modesty/identity.rb
130
+ - lib/modesty/load.rb
131
+ - lib/modesty/load/load_experiments.rb
132
+ - lib/modesty/load/load_metrics.rb
133
+ - lib/modesty/metric.rb
134
+ - lib/modesty/metric/base.rb
135
+ - lib/modesty/metric/builder.rb
136
+ - lib/modesty/metric/data.rb
137
+ - modesty.gemspec
138
+ - spec/core_ext_spec.rb
139
+ - spec/experiment_spec.rb
140
+ - spec/identity_spec.rb
141
+ - spec/load_spec.rb
142
+ - spec/metric_spec.rb
143
+ - spec/rails_spec.rb
144
+ - spec/redis_spec.rb
145
+ - spec/significance_spec.rb
146
+ - spec/spec.opts
147
+ - test/myapp/config/modesty.yml
148
+ - test/myapp/modesty/experiments/cookbook.rb
149
+ - test/myapp/modesty/metrics/kitchen_metrics.rb
150
+ - test/myapp/modesty/metrics/stove/burner_metrics.rb
151
+ - vendor/.piston.yml
152
+ - vendor/mock_redis/.gitignore
153
+ - vendor/mock_redis/README
154
+ - vendor/mock_redis/lib/mock_redis.rb
155
+ - vendor/mock_redis/lib/mock_redis/hash.rb
156
+ - vendor/mock_redis/lib/mock_redis/list.rb
157
+ - vendor/mock_redis/lib/mock_redis/misc.rb
158
+ - vendor/mock_redis/lib/mock_redis/set.rb
159
+ - vendor/mock_redis/lib/mock_redis/string.rb
160
+ - vendor/redis-rb/.gitignore
161
+ - vendor/redis-rb/LICENSE
162
+ - vendor/redis-rb/README.markdown
163
+ - vendor/redis-rb/Rakefile
164
+ - vendor/redis-rb/benchmarking/logging.rb
165
+ - vendor/redis-rb/benchmarking/pipeline.rb
166
+ - vendor/redis-rb/benchmarking/speed.rb
167
+ - vendor/redis-rb/benchmarking/suite.rb
168
+ - vendor/redis-rb/benchmarking/thread_safety.rb
169
+ - vendor/redis-rb/benchmarking/worker.rb
170
+ - vendor/redis-rb/examples/basic.rb
171
+ - vendor/redis-rb/examples/dist_redis.rb
172
+ - vendor/redis-rb/examples/incr-decr.rb
173
+ - vendor/redis-rb/examples/list.rb
174
+ - vendor/redis-rb/examples/pubsub.rb
175
+ - vendor/redis-rb/examples/sets.rb
176
+ - vendor/redis-rb/examples/unicorn/config.ru
177
+ - vendor/redis-rb/examples/unicorn/unicorn.rb
178
+ - vendor/redis-rb/lib/redis.rb
179
+ - vendor/redis-rb/lib/redis/client.rb
180
+ - vendor/redis-rb/lib/redis/compat.rb
181
+ - vendor/redis-rb/lib/redis/connection.rb
182
+ - vendor/redis-rb/lib/redis/distributed.rb
183
+ - vendor/redis-rb/lib/redis/hash_ring.rb
184
+ - vendor/redis-rb/lib/redis/pipeline.rb
185
+ - vendor/redis-rb/lib/redis/subscribe.rb
186
+ - vendor/redis-rb/redis.gemspec
187
+ - vendor/redis-rb/test/commands_on_hashes_test.rb
188
+ - vendor/redis-rb/test/commands_on_lists_test.rb
189
+ - vendor/redis-rb/test/commands_on_sets_test.rb
190
+ - vendor/redis-rb/test/commands_on_sorted_sets_test.rb
191
+ - vendor/redis-rb/test/commands_on_strings_test.rb
192
+ - vendor/redis-rb/test/commands_on_value_types_test.rb
193
+ - vendor/redis-rb/test/connection_handling_test.rb
194
+ - vendor/redis-rb/test/db/.gitignore
195
+ - vendor/redis-rb/test/distributd_key_tags_test.rb
196
+ - vendor/redis-rb/test/distributed_blocking_commands_test.rb
197
+ - vendor/redis-rb/test/distributed_commands_on_hashes_test.rb
198
+ - vendor/redis-rb/test/distributed_commands_on_lists_test.rb
199
+ - vendor/redis-rb/test/distributed_commands_on_sets_test.rb
200
+ - vendor/redis-rb/test/distributed_commands_on_strings_test.rb
201
+ - vendor/redis-rb/test/distributed_commands_on_value_types_test.rb
202
+ - vendor/redis-rb/test/distributed_commands_requiring_clustering_test.rb
203
+ - vendor/redis-rb/test/distributed_connection_handling_test.rb
204
+ - vendor/redis-rb/test/distributed_internals_test.rb
205
+ - vendor/redis-rb/test/distributed_persistence_control_commands_test.rb
206
+ - vendor/redis-rb/test/distributed_publish_subscribe_test.rb
207
+ - vendor/redis-rb/test/distributed_remote_server_control_commands_test.rb
208
+ - vendor/redis-rb/test/distributed_sorting_test.rb
209
+ - vendor/redis-rb/test/distributed_test.rb
210
+ - vendor/redis-rb/test/distributed_transactions_test.rb
211
+ - vendor/redis-rb/test/encoding_test.rb
212
+ - vendor/redis-rb/test/helper.rb
213
+ - vendor/redis-rb/test/internals_test.rb
214
+ - vendor/redis-rb/test/lint/hashes.rb
215
+ - vendor/redis-rb/test/lint/internals.rb
216
+ - vendor/redis-rb/test/lint/lists.rb
217
+ - vendor/redis-rb/test/lint/sets.rb
218
+ - vendor/redis-rb/test/lint/sorted_sets.rb
219
+ - vendor/redis-rb/test/lint/strings.rb
220
+ - vendor/redis-rb/test/lint/value_types.rb
221
+ - vendor/redis-rb/test/persistence_control_commands_test.rb
222
+ - vendor/redis-rb/test/pipelining_commands_test.rb
223
+ - vendor/redis-rb/test/publish_subscribe_test.rb
224
+ - vendor/redis-rb/test/redis_mock.rb
225
+ - vendor/redis-rb/test/remote_server_control_commands_test.rb
226
+ - vendor/redis-rb/test/sorting_test.rb
227
+ - vendor/redis-rb/test/test.conf
228
+ - vendor/redis-rb/test/thread_safety_test.rb
229
+ - vendor/redis-rb/test/transactions_test.rb
230
+ - vendor/redis-rb/test/unknown_commands_test.rb
231
+ - vendor/redis-rb/test/url_param_test.rb
232
+ has_rdoc: true
233
+ homepage: http://github.com/causes/modesty
234
+ licenses: []
235
+
236
+ post_install_message:
237
+ rdoc_options: []
238
+
239
+ require_paths:
240
+ - lib
241
+ required_ruby_version: !ruby/object:Gem::Requirement
242
+ none: false
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ hash: 3
247
+ segments:
248
+ - 0
249
+ version: "0"
250
+ required_rubygems_version: !ruby/object:Gem::Requirement
251
+ none: false
252
+ requirements:
253
+ - - ">="
254
+ - !ruby/object:Gem::Version
255
+ hash: 3
256
+ segments:
257
+ - 0
258
+ version: "0"
259
+ requirements: []
260
+
261
+ rubyforge_project:
262
+ rubygems_version: 1.6.2
263
+ signing_key:
264
+ specification_version: 3
265
+ summary: Modesty is simple and scalable split testing and event tracking framework.
266
+ test_files:
267
+ - spec/core_ext_spec.rb
268
+ - spec/experiment_spec.rb
269
+ - spec/identity_spec.rb
270
+ - spec/load_spec.rb
271
+ - spec/metric_spec.rb
272
+ - spec/rails_spec.rb
273
+ - spec/redis_spec.rb
274
+ - spec/significance_spec.rb
275
+ - test/myapp/modesty/experiments/cookbook.rb
276
+ - test/myapp/modesty/metrics/kitchen_metrics.rb
277
+ - test/myapp/modesty/metrics/stove/burner_metrics.rb