metry 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/History.txt +6 -0
  2. data/Manifest.txt +14 -69
  3. data/TODO +2 -3
  4. data/cucumber.yml +1 -0
  5. data/example/example.rb +1 -1
  6. data/features/psycho/dashboard.feature +17 -0
  7. data/features/psycho/goals.feature +24 -0
  8. data/features/psycho/visitor_tracking.feature +32 -0
  9. data/features/step_definitions/goals.rb +3 -0
  10. data/features/step_definitions/tracking.rb +1 -1
  11. data/features/step_definitions/web.rb +14 -2
  12. data/features/support/env.rb +4 -0
  13. data/lib/metry.rb +4 -6
  14. data/lib/metry/experiment.rb +6 -8
  15. data/lib/metry/psycho.rb +112 -0
  16. data/lib/metry/psycho/dashboard.erb +14 -0
  17. data/lib/metry/psycho/layout.erb +8 -0
  18. data/lib/metry/psycho/new_goal.erb +9 -0
  19. data/lib/metry/psycho/visitor.erb +7 -0
  20. data/lib/metry/rack/tracking.rb +17 -13
  21. data/lib/metry/storage.rb +116 -0
  22. data/radiant/example/features/metry.feature +8 -8
  23. data/radiant/example/features/psycho.feature +13 -0
  24. data/radiant/example/features/step_definitions/experiments.rb +2 -2
  25. data/radiant/example/features/step_definitions/tracking.rb +1 -1
  26. data/radiant/example/features/support/env.rb +3 -0
  27. data/radiant/extension/lib/metry_authenticator.rb +30 -0
  28. data/radiant/extension/lib/metry_tags.rb +2 -1
  29. data/radiant/extension/metry_extension.rb +1 -1
  30. data/test/{test_tokyo.rb → test_storage.rb} +3 -3
  31. metadata +17 -72
  32. data/lib/metry/memory.rb +0 -27
  33. data/lib/metry/tokyo.rb +0 -181
  34. data/vendor/rufus-tokyo/CHANGELOG.txt +0 -112
  35. data/vendor/rufus-tokyo/CREDITS.txt +0 -27
  36. data/vendor/rufus-tokyo/LICENSE.txt +0 -21
  37. data/vendor/rufus-tokyo/README.txt +0 -310
  38. data/vendor/rufus-tokyo/Rakefile +0 -118
  39. data/vendor/rufus-tokyo/TODO.txt +0 -25
  40. data/vendor/rufus-tokyo/doc/decision_table.numbers +0 -0
  41. data/vendor/rufus-tokyo/doc/rdoc-style.css +0 -320
  42. data/vendor/rufus-tokyo/lib/rufus-edo.rb +0 -3
  43. data/vendor/rufus-tokyo/lib/rufus-tokyo.rb +0 -3
  44. data/vendor/rufus-tokyo/lib/rufus/edo.rb +0 -39
  45. data/vendor/rufus-tokyo/lib/rufus/edo/README.txt +0 -106
  46. data/vendor/rufus-tokyo/lib/rufus/edo/cabcore.rb +0 -333
  47. data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/abstract.rb +0 -219
  48. data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/table.rb +0 -159
  49. data/vendor/rufus-tokyo/lib/rufus/edo/error.rb +0 -36
  50. data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant.rb +0 -4
  51. data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/abstract.rb +0 -137
  52. data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/table.rb +0 -141
  53. data/vendor/rufus-tokyo/lib/rufus/edo/tabcore.rb +0 -567
  54. data/vendor/rufus-tokyo/lib/rufus/tokyo.rb +0 -58
  55. data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/abstract.rb +0 -568
  56. data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/lib.rb +0 -230
  57. data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/table.rb +0 -753
  58. data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/util.rb +0 -425
  59. data/vendor/rufus-tokyo/lib/rufus/tokyo/config.rb +0 -161
  60. data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia.rb +0 -43
  61. data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/lib.rb +0 -65
  62. data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/words.rb +0 -71
  63. data/vendor/rufus-tokyo/lib/rufus/tokyo/hmethods.rb +0 -111
  64. data/vendor/rufus-tokyo/lib/rufus/tokyo/query.rb +0 -102
  65. data/vendor/rufus-tokyo/lib/rufus/tokyo/transactions.rb +0 -74
  66. data/vendor/rufus-tokyo/lib/rufus/tokyo/ttcommons.rb +0 -59
  67. data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant.rb +0 -35
  68. data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/abstract.rb +0 -146
  69. data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/lib.rb +0 -153
  70. data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/table.rb +0 -162
  71. data/vendor/rufus-tokyo/rufus-tokyo.gemspec +0 -25
  72. data/vendor/rufus-tokyo/spec/cabinet_spec.rb +0 -472
  73. data/vendor/rufus-tokyo/spec/cabinetconfig_spec.rb +0 -82
  74. data/vendor/rufus-tokyo/spec/edo_cabinet_spec.rb +0 -447
  75. data/vendor/rufus-tokyo/spec/edo_ntyrant_spec.rb +0 -299
  76. data/vendor/rufus-tokyo/spec/edo_ntyrant_table_spec.rb +0 -462
  77. data/vendor/rufus-tokyo/spec/edo_table_spec.rb +0 -560
  78. data/vendor/rufus-tokyo/spec/hmethods_spec.rb +0 -44
  79. data/vendor/rufus-tokyo/spec/incr.lua +0 -20
  80. data/vendor/rufus-tokyo/spec/spec.rb +0 -9
  81. data/vendor/rufus-tokyo/spec/spec_base.rb +0 -23
  82. data/vendor/rufus-tokyo/spec/start_tyrants.sh +0 -26
  83. data/vendor/rufus-tokyo/spec/stop_tyrants.sh +0 -9
  84. data/vendor/rufus-tokyo/spec/table_spec.rb +0 -567
  85. data/vendor/rufus-tokyo/spec/tyrant_spec.rb +0 -309
  86. data/vendor/rufus-tokyo/spec/tyrant_table_spec.rb +0 -479
  87. data/vendor/rufus-tokyo/spec/util_list_spec.rb +0 -200
  88. data/vendor/rufus-tokyo/spec/util_map_spec.rb +0 -132
  89. data/vendor/rufus-tokyo/tasks/dev.rb +0 -70
  90. data/vendor/rufus-tokyo/test/bm0.rb +0 -353
  91. data/vendor/rufus-tokyo/test/bm1_compression.rb +0 -54
  92. data/vendor/rufus-tokyo/test/con0.rb +0 -30
  93. data/vendor/rufus-tokyo/test/mem.rb +0 -49
  94. data/vendor/rufus-tokyo/test/mem1.rb +0 -44
  95. data/vendor/rufus-tokyo/test/readme0.rb +0 -17
  96. data/vendor/rufus-tokyo/test/readme1.rb +0 -21
  97. data/vendor/rufus-tokyo/test/readme2.rb +0 -15
  98. data/vendor/rufus-tokyo/test/readme3.rb +0 -24
  99. data/vendor/rufus-tokyo/test/readmes_test.sh +0 -17
@@ -1,118 +0,0 @@
1
-
2
- require 'rubygems'
3
-
4
- require 'rake'
5
- require 'rake/clean'
6
- require 'rake/packagetask'
7
- require 'rake/gempackagetask'
8
- require 'rake/testtask'
9
- require 'tasks/dev'
10
-
11
- #require 'rake/rdoctask'
12
- require 'hanna/rdoctask'
13
-
14
- gemspec = File.read('rufus-tokyo.gemspec')
15
- eval "gemspec = #{gemspec}"
16
-
17
- #
18
- # tasks
19
-
20
- CLEAN.include('pkg', 'tmp', 'html')
21
-
22
- task :default => [ :clean, :repackage ]
23
-
24
-
25
- #
26
- # SPECING
27
-
28
- task :spec do
29
- load File.dirname(__FILE__) + '/spec/spec.rb'
30
- end
31
-
32
-
33
- #
34
- # TESTING
35
- #Rake::TestTask.new(:test) do |t|
36
- # t.libs << 'lib'
37
- # t.libs << 'test'
38
- # t.test_files = FileList['test/test.rb']
39
- # t.verbose = true
40
- #end
41
- task :test => :spec
42
-
43
-
44
- #
45
- # VERSION
46
-
47
- task :change_version do
48
-
49
- version = ARGV.pop
50
- `sedip "s/VERSION = '.*'/VERSION = '#{version}'/" lib/rufus/tokyo.rb`
51
- `sedip "s/s.version = '.*'/s.version = '#{version}'/" rufus-tokyo.gemspec`
52
- exit 0 # prevent rake from triggering other tasks
53
- end
54
-
55
-
56
- #
57
- # PACKAGING
58
-
59
- Rake::GemPackageTask.new(gemspec) do |pkg|
60
- #pkg.need_tar = true
61
- end
62
-
63
- Rake::PackageTask.new('rufus-tokyo', gemspec.version) do |pkg|
64
-
65
- pkg.need_zip = true
66
-
67
- pkg.package_files = FileList[
68
- 'Rakefile',
69
- '*.txt',
70
- 'lib/**/*',
71
- 'spec/**/*',
72
- 'test/**/*'
73
- ].to_a
74
- pkg.package_files.delete('lib/tokyotyrant.rb')
75
-
76
- class << pkg
77
- def package_name
78
- "#{@name}-#{@version}-src"
79
- end
80
- end
81
- end
82
-
83
-
84
- #
85
- # DOCUMENTATION
86
-
87
- Rake::RDocTask.new do |rd|
88
-
89
- rd.main = 'README.txt'
90
- rd.rdoc_dir = 'html/rufus-tokyo'
91
- rd.rdoc_files.include(
92
- 'README.txt',
93
- 'CHANGELOG.txt',
94
- 'LICENSE.txt',
95
- 'CREDITS.txt',
96
- 'lib/**/*.rb')
97
- rd.rdoc_files.exclude('lib/tokyotyrant.rb')
98
- rd.title = 'rufus-tokyo rdoc'
99
- rd.options << '-N' # line numbers
100
- rd.options << '-S' # inline source
101
- end
102
-
103
- task :rrdoc => :rdoc do
104
- FileUtils.cp('doc/rdoc-style.css', 'html/rufus-tokyo/')
105
- end
106
-
107
-
108
- #
109
- # WEBSITE
110
-
111
- task :upload_website => [ :clean, :rrdoc ] do
112
-
113
- account = 'jmettraux@rubyforge.org'
114
- webdir = '/var/www/gforge-projects/rufus'
115
-
116
- sh "rsync -azv -e ssh html/rufus-tokyo #{account}:#{webdir}/"
117
- end
118
-
@@ -1,25 +0,0 @@
1
-
2
- [o] table : bench find(1) after set_index
3
- [o] table : bench insert(1) after set_index
4
-
5
- [o] align edo#new on tokyo#new
6
- [ ] horizontal (bdb hdb fdb) tests for tokyo and edo
7
-
8
- [o] rdoc unix socket for tyrant
9
- [o] edo : tran
10
- [ ] bench ux socket
11
-
12
- [o] TT (TC) call [lua] function
13
- [ ] queryout
14
-
15
- [o] impl lget/lput/ldelete in Rufus::Edo::Cabinet
16
-
17
- [ ] maybe supported different libs for migrations...
18
-
19
- [ ] document ENV['TOKYO_TYRANT_LIB'] & _CABINET_
20
-
21
- [o] unify m/l raise trick for util map/list
22
-
23
- [ ] misc calls (defrag) for Edo
24
- [ ] TT set master & co
25
-
@@ -1,320 +0,0 @@
1
- html, body {
2
- height: 100%; }
3
-
4
- body {
5
- font-family: Helvetica Neue, Helvetica, sans-serif;
6
- font-size: 85%;
7
- margin: 0;
8
- padding: 0;
9
- background: white;
10
- color: black; }
11
-
12
- #wrapper {
13
- min-height: 100%;
14
- height: auto !important;
15
- height: 100%;
16
- margin: 0 auto -43px; }
17
-
18
- #footer-push {
19
- height: 43px; }
20
-
21
- div.header, #footer {
22
- background: #eee; }
23
-
24
- #footer {
25
- border-top: 1px solid silver;
26
- margin-top: 12px;
27
- padding: 0 2em;
28
- line-height: 30px;
29
- text-align: center;
30
- font-variant: small-caps;
31
- font-size: 95%; }
32
-
33
- .clearing:after {
34
- content: ".";
35
- visibility: hidden;
36
- height: 0;
37
- display: block;
38
- clear: both; }
39
- * html .clearing {
40
- height: 1px; }
41
- .clearing *:first-child + html {
42
- overflow: hidden; }
43
-
44
- h1, h2, h3, h4, h5, h6 {
45
- margin: 0;
46
- font-weight: normal; }
47
-
48
- a {
49
- color: #0b3e71; }
50
- a:hover {
51
- background: #336699;
52
- text-decoration: none;
53
- color: #eef; }
54
-
55
- #diagram img {
56
- border: 0; }
57
-
58
- #description a, .method .description a, .header a {
59
- color: #336699; }
60
- #description a:hover, .method .description a:hover, .header a:hover {
61
- color: #eee; }
62
- #description h1 a, #description h2 a, #description h3 a, #description h4 a, #description h5 a, #description h6 a, .method .description h1 a, .method .description h2 a, .method .description h3 a, .method .description h4 a, .method .description h5 a, .method .description h6 a, .header h1 a, .header h2 a, .header h3 a, .header h4 a, .header h5 a, .header h6 a {
63
- color: #0b3e71; }
64
-
65
- ol {
66
- margin: 0;
67
- padding: 0;
68
- list-style: none; }
69
- ol li {
70
- margin-left: 0;
71
- white-space: nowrap; }
72
- ol li.other {
73
- display: none; }
74
-
75
- ol.expanded li.other {
76
- display: list-item; }
77
-
78
- table {
79
- margin-bottom: 1em;
80
- font-size: 1em;
81
- border-collapse: collapse; }
82
- table td, table th {
83
- padding: .4em .8em; }
84
- table thead {
85
- background-color: #e8e8e8; }
86
- table thead th {
87
- font-variant: small-caps;
88
- color: #666666; }
89
- table tr {
90
- border-bottom: 1px solid silver; }
91
-
92
- #index a.show, div.header a.show {
93
- text-decoration: underline;
94
- font-style: italic;
95
- color: #666666; }
96
- #index a.show:after, div.header a.show:after {
97
- content: " ..."; }
98
- #index a.show:hover, div.header a.show:hover {
99
- color: black;
100
- background: #ffe; }
101
-
102
- #index {
103
- font: 85%/1.2 Helvetica neue, Helvetica, sans-serif; }
104
- #index a {
105
- text-decoration: none; }
106
- #index h1 {
107
- padding: .2em .5em .1em;
108
- background: #ccc;
109
- font: small-caps 1.2em Helvetica Neue, Helvetica, sans-serif;
110
- color: #333;
111
- border-bottom: 1px solid gray; }
112
- #index form {
113
- margin: 0;
114
- padding: 0; }
115
- #index form input {
116
- margin: .4em;
117
- margin-bottom: 0;
118
- width: 90%; }
119
- #index form #search.untouched {
120
- color: #777777; }
121
- #index ol {
122
- padding: .4em .5em; }
123
- #index ol li {
124
- white-space: nowrap; }
125
- #index #index-entries li a {
126
- padding: 1px 2px; }
127
- #index #index-entries.classes {
128
- font-size: 1.1em; }
129
- #index #index-entries.classes ol {
130
- padding: 0; }
131
- #index #index-entries.classes span.nodoc {
132
- display: none; }
133
- #index #index-entries.classes span.nodoc, #index #index-entries.classes a {
134
- font-weight: bold; }
135
- #index #index-entries.classes .parent {
136
- font-weight: normal; }
137
- #index #index-entries.methods li, #index #search-results.methods li {
138
- margin-bottom: 0.2em; }
139
- #index #index-entries.methods li a .method_name, #index #search-results.methods li a .method_name {
140
- margin-right: 0.25em; }
141
- #index #index-entries.methods li a .module_name, #index #search-results.methods li a .module_name {
142
- color: #666666; }
143
- #index #index-entries.methods li a:hover .module_name, #index #search-results.methods li a:hover .module_name {
144
- color: #ddd; }
145
-
146
- div.header {
147
- font-size: 80%;
148
- padding: .5em 2%;
149
- font-family: Helvetica, sans-serif;
150
- border-bottom: 1px solid silver; }
151
- div.header .name {
152
- font-size: 1.6em;
153
- font-family: Helvetica, sans-serif; }
154
- div.header .name .type {
155
- color: #666666;
156
- font-size: 80%;
157
- font-variant: small-caps; }
158
- div.header h1.name {
159
- font-size: 2.2em; }
160
- div.header .paths, div.header .last-update, div.header .parent {
161
- color: #666666; }
162
- div.header .last-update .datetime {
163
- color: #484848; }
164
- div.header .parent {
165
- margin-top: .3em; }
166
- div.header .parent strong {
167
- font-weight: normal;
168
- color: #484848; }
169
-
170
- #content {
171
- padding: 12px 2%; }
172
- div.class #content {
173
- position: relative;
174
- width: 72%; }
175
- #content pre, #content .method .synopsis {
176
- font: 14px Monaco, DejaVu Sans Mono , Bitstream Vera Sans Mono , Courier New , monospace; }
177
- #content pre {
178
- color: black;
179
- background: #eee;
180
- border: 1px solid silver;
181
- padding: .5em .8em;
182
- overflow: auto; }
183
- #content p code, #content p tt, #content li code, #content li tt, #content dl code, #content dl tt {
184
- font: 14px Monaco, DejaVu Sans Mono , Bitstream Vera Sans Mono , Courier New , monospace;
185
- background: #ffffe3;
186
- padding: 2px 3px;
187
- line-height: 1.4; }
188
- #content h1 code, #content h1 tt, #content h2 code, #content h2 tt, #content h3 code, #content h3 tt, #content h4 code, #content h4 tt, #content h5 code, #content h5 tt, #content h6 code, #content h6 tt {
189
- font-size: 1.1em; }
190
- #content #text {
191
- position: relative; }
192
- #content #description p {
193
- margin-top: .5em; }
194
- #content #description h1, #content #description h2, #content #description h3, #content #description h4, #content #description h5, #content #description h6 {
195
- font-family: Helvetica Neue, Helvetica, sans-serif; }
196
- #content #description h1 {
197
- font-size: 2.2em;
198
- margin-bottom: .2em;
199
- border-bottom: 3px double #d8d8d8;
200
- padding-bottom: .1em; }
201
- #content #description h2 {
202
- font-size: 1.8em;
203
- color: #0e3062;
204
- margin: .8em 0 .3em 0; }
205
- #content #description h3 {
206
- font-size: 1.6em;
207
- margin: .8em 0 .3em 0;
208
- color: #666666; }
209
- #content #description h4 {
210
- font-size: 1.4em;
211
- margin: .8em 0 .3em 0; }
212
- #content #description h5 {
213
- font-size: 1.2em;
214
- margin: .8em 0 .3em 0;
215
- color: #0e3062; }
216
- #content #description h6 {
217
- font-size: 1.0em;
218
- margin: .8em 0 .3em 0;
219
- color: #666666; }
220
- #content #description ul, #content #description ol, #content .method .description ul, #content .method .description ol {
221
- margin: .8em 0;
222
- padding-left: 1.5em; }
223
- #content #description ol, #content .method .description ol {
224
- list-style: decimal; }
225
- #content #description ol li, #content .method .description ol li {
226
- white-space: normal; }
227
-
228
- #method-list {
229
- position: absolute;
230
- top: 0px;
231
- right: -33%;
232
- width: 28%;
233
- background: #eee;
234
- border: 1px solid silver;
235
- padding: .4em 1%;
236
- overflow: hidden; }
237
- #method-list h2 {
238
- font-size: 1.3em; }
239
- #method-list h3 {
240
- font-variant: small-caps;
241
- text-transform: capitalize;
242
- font-family: Helvetica Neue, Helvetica, sans-serif;
243
- color: #666;
244
- font-size: 1.1em; }
245
- #method-list ol {
246
- padding: 0 0 .5em .5em; }
247
-
248
- #context {
249
- border-top: 1px dashed silver;
250
- margin-top: 1em;
251
- margin-bottom: 1em; }
252
-
253
- #context h2, #section h2 {
254
- font: small-caps 1.2em Helvetica Neue, Helvetica, sans-serif;
255
- color: #444;
256
- margin: 1em 0 .2em 0; }
257
-
258
- #methods .method {
259
- border: 1px solid silver;
260
- margin-top: .5em;
261
- background: #eee; }
262
- #methods .method .synopsis {
263
- color: black;
264
- background: silver;
265
- padding: .2em 1em; }
266
- #methods .method .synopsis .name {
267
- font-weight: bold; }
268
- #methods .method .synopsis a {
269
- text-decoration: none; }
270
- #methods .method .description {
271
- padding: 0 1em; }
272
- #methods .method .description pre {
273
- background: #f8f8f8; }
274
- #methods .method .source {
275
- margin: .5em 0; }
276
- #methods .method .source-toggle {
277
- font-size: 85%;
278
- margin-left: 1em; }
279
- #methods .public-class {
280
- background: #ffffe4; }
281
- #methods .public-instance .synopsis {
282
- color: #eee;
283
- background: #336699; }
284
-
285
- #content .method .source pre {
286
- font-size: 90%;
287
- background: #262626;
288
- color: #ffdead;
289
- margin: 1em;
290
- padding: 0.5em;
291
- border: 1px dashed #999;
292
- overflow: auto; }
293
- #content .method .source pre .ruby-constant {
294
- color: #7fffd4;
295
- background: transparent; }
296
- #content .method .source pre .ruby-keyword {
297
- color: #00ffff;
298
- background: transparent; }
299
- #content .method .source pre .ruby-ivar {
300
- color: #eedd82;
301
- background: transparent; }
302
- #content .method .source pre .ruby-operator {
303
- color: #00ffee;
304
- background: transparent; }
305
- #content .method .source pre .ruby-identifier {
306
- color: #ffdead;
307
- background: transparent; }
308
- #content .method .source pre .ruby-node {
309
- color: #ffa07a;
310
- background: transparent; }
311
- #content .method .source pre .ruby-comment {
312
- color: #b22222;
313
- font-weight: bold;
314
- background: transparent; }
315
- #content .method .source pre .ruby-regexp {
316
- color: #ffa07a;
317
- background: transparent; }
318
- #content .method .source pre .ruby-value {
319
- color: #7fffd4;
320
- background: transparent; }