split 0.7.2 → 0.7.3
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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/Appraisals +1 -5
- data/CHANGELOG.mdown +34 -2
- data/README.mdown +18 -5
- data/gemfiles/3.0.gemfile +1 -2
- data/gemfiles/3.0.gemfile.lock +59 -31
- data/gemfiles/3.1.gemfile +1 -2
- data/gemfiles/3.1.gemfile.lock +56 -31
- data/gemfiles/3.2.gemfile +1 -2
- data/gemfiles/4.0.gemfile +1 -2
- data/lib/split/dashboard/helpers.rb +4 -0
- data/lib/split/dashboard/views/_experiment.erb +1 -1
- data/lib/split/helper.rb +11 -3
- data/lib/split/version.rb +1 -1
- data/spec/algorithms/weighted_sample_spec.rb +4 -4
- data/spec/algorithms/whiplash_spec.rb +8 -8
- data/spec/alternative_spec.rb +51 -51
- data/spec/configuration_spec.rb +26 -26
- data/spec/dashboard_helpers_spec.rb +7 -7
- data/spec/dashboard_spec.rb +21 -20
- data/spec/experiment_spec.rb +63 -63
- data/spec/helper_spec.rb +164 -145
- data/spec/metric_spec.rb +3 -3
- data/spec/persistence/cookie_adapter_spec.rb +5 -5
- data/spec/persistence/redis_adapter_spec.rb +7 -7
- data/spec/persistence/session_adapter_spec.rb +4 -4
- data/spec/persistence_spec.rb +8 -8
- data/spec/trial_spec.rb +14 -14
- data/split.gemspec +3 -3
- metadata +8 -10
- data/gemfiles/3.2.gemfile.lock +0 -123
- data/gemfiles/4.0.gemfile.lock +0 -118
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f82715d8a40ce8c082c284b6943dd1e2ddb5687c
|
4
|
+
data.tar.gz: ea4eabce6bd35c108b821994ecb1a882fcac1d53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12c72dce74d3d7065818408fa56edf3533929adf80a64244348883af2e573009ba865fcd74b585350b32a5616f6c4c11fe0b6c83336ee3a964696b3090b32156
|
7
|
+
data.tar.gz: 54c690bbfa4f7f9d99863ce0435c275f91d4e29ea4c291d352a7bbd89c019655dcee06c02d9918aa51a2211b549df2a5651a42928d4fae10f3a8f9738395fb88
|
data/.travis.yml
CHANGED
data/Appraisals
CHANGED
@@ -1,19 +1,15 @@
|
|
1
1
|
appraise "3.0" do
|
2
2
|
gem "rails", "~> 3.0.20"
|
3
|
-
gem "split", :path => "../"
|
4
3
|
end
|
5
4
|
|
6
5
|
appraise "3.1" do
|
7
6
|
gem "rails", "~> 3.1.12"
|
8
|
-
gem "split", :path => "../"
|
9
7
|
end
|
10
8
|
|
11
9
|
appraise "3.2" do
|
12
10
|
gem "rails", "~> 3.2.13"
|
13
|
-
gem "split", :path => "../"
|
14
11
|
end
|
15
12
|
|
16
13
|
appraise "4.0" do
|
17
14
|
gem "rails", "4.0.0.rc1"
|
18
|
-
|
19
|
-
end
|
15
|
+
end
|
data/CHANGELOG.mdown
CHANGED
@@ -1,7 +1,39 @@
|
|
1
|
+
## 0.7.3 (September 16th, 2014)
|
2
|
+
|
3
|
+
Features:
|
4
|
+
|
5
|
+
- Disable all split tests via a URL parameter (@hwartig, #263)
|
6
|
+
|
7
|
+
Bugfixes:
|
8
|
+
|
9
|
+
- Correctly escape experiment names on dashboard (@ecaron, #265)
|
10
|
+
- Handle redis connection exception error properly (@andrew, #245)
|
11
|
+
|
12
|
+
## 0.7.2 (June 12th, 2014)
|
13
|
+
|
14
|
+
Features:
|
15
|
+
|
16
|
+
- Show metrics on the dashboard (@swrobel, #241)
|
17
|
+
|
18
|
+
Bugfixes:
|
19
|
+
|
20
|
+
- Avoid nil error with ExperimentCatalog when upgrading (@danielschwartz, #253)
|
21
|
+
- [SECURITY ISSUE] Only allow known alternatives as query param overrides (@ankane, #255)
|
22
|
+
|
23
|
+
## 0.7.1 (March 20th, 2014)
|
24
|
+
|
25
|
+
Features:
|
26
|
+
|
27
|
+
- You can now reopen experiment from the dashboard (@mikezaby, #235)
|
28
|
+
|
29
|
+
Misc
|
30
|
+
|
31
|
+
- Internal code tidy up (@IanVaughan, #238)
|
32
|
+
|
1
33
|
## 0.7.0 (December 26th, 2013)
|
2
34
|
|
3
35
|
Features:
|
4
|
-
|
36
|
+
|
5
37
|
- Significantly improved z-score algorithm (@caser ,#221)
|
6
38
|
- Better sorting of Experiments on dashboard (@wadako111, #218)
|
7
39
|
|
@@ -10,7 +42,7 @@ Bugfixes:
|
|
10
42
|
- Fixed start button not being displayed in some cases (@vigosan, #219)
|
11
43
|
|
12
44
|
Misc
|
13
|
-
|
45
|
+
|
14
46
|
- Experiment#initialize refactoring (@nberger, #224)
|
15
47
|
- Extract ExperimentStore into a seperate class (@nberger, #225)
|
16
48
|
|
data/README.mdown
CHANGED
@@ -6,11 +6,11 @@ Split is heavily inspired by the Abingo and Vanity rails ab testing plugins and
|
|
6
6
|
|
7
7
|
Split is designed to be hacker friendly, allowing for maximum customisation and extensibility.
|
8
8
|
|
9
|
-
[](http://badge.fury.io/rb/split)
|
10
|
+
[](http://travis-ci.org/andrew/split)
|
11
|
+
[](https://gemnasium.com/andrew/split)
|
12
|
+
[](https://codeclimate.com/github/andrew/split)
|
13
|
+
[](https://coveralls.io/r/andrew/split)
|
14
14
|
|
15
15
|
## Requirements
|
16
16
|
|
@@ -179,6 +179,12 @@ If you have an experiment called `button_color` with alternatives called `red` a
|
|
179
179
|
|
180
180
|
will always have red buttons. This won't be stored in your session or count towards to results, unless you set the `store_override` configuration option.
|
181
181
|
|
182
|
+
In the event you want to disable all tests without having to know the individual experiment names, add a `SPLIT_DISABLE` query parameter.
|
183
|
+
|
184
|
+
http://myawesomesite.com?SPLIT_DISABLE=trues
|
185
|
+
|
186
|
+
It is not required to send `SPLIT_DISABLE=false` to activate Split.
|
187
|
+
|
182
188
|
### Starting experiments manually
|
183
189
|
|
184
190
|
By default new AB tests will be active right after deployment. In case you would like to start new test a while after
|
@@ -517,6 +523,12 @@ To complete a goal conversion, you do it like:
|
|
517
523
|
finished("link_color" => "purchase")
|
518
524
|
```
|
519
525
|
|
526
|
+
**NOTE:** This does not mean that a single experiment can have/complete progressive goals.
|
527
|
+
|
528
|
+
**Good Example**: Test if listing Plan A first result in more conversions to Plan A (goal: "plana_conversion") or Plan B (goal: "planb_conversion").
|
529
|
+
|
530
|
+
**Bad Example**: Test if button color increases conversion rate through multiple steps of a funnel. THIS WILL NOT WORK.
|
531
|
+
|
520
532
|
### DB failover solution
|
521
533
|
|
522
534
|
Due to the fact that Redis has no automatic failover mechanism, it's
|
@@ -632,6 +644,7 @@ end
|
|
632
644
|
- [Split::Analytics](http://github.com/andrew/split-analytics) - push test data to google analytics
|
633
645
|
- [Split::Mongoid](https://github.com/MongoHQ/split-mongoid) - store experiment data in mongoid (still uses redis)
|
634
646
|
- [Split::Cacheable](https://github.com/harrystech/split_cacheable) - automatically create cache buckets per test
|
647
|
+
- [Split::Counters](https://github.com/bernardkroes/split-counters) - add counters per experiment and alternative
|
635
648
|
|
636
649
|
## Screencast
|
637
650
|
|
data/gemfiles/3.0.gemfile
CHANGED
data/gemfiles/3.0.gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
|
-
remote:
|
2
|
+
remote: ../
|
3
3
|
specs:
|
4
|
-
split (0.
|
4
|
+
split (0.7.2)
|
5
5
|
redis (>= 2.1)
|
6
6
|
redis-namespace (>= 1.1.0)
|
7
7
|
simple-random
|
@@ -37,24 +37,35 @@ GEM
|
|
37
37
|
activemodel (= 3.0.20)
|
38
38
|
activesupport (= 3.0.20)
|
39
39
|
activesupport (3.0.20)
|
40
|
-
appraisal (0.
|
40
|
+
appraisal (1.0.0)
|
41
41
|
bundler
|
42
42
|
rake
|
43
|
+
thor (>= 0.14.0)
|
43
44
|
arel (2.0.10)
|
45
|
+
backports (3.6.0)
|
44
46
|
builder (2.1.2)
|
45
|
-
|
47
|
+
coveralls (0.7.0)
|
48
|
+
multi_json (~> 1.3)
|
49
|
+
rest-client
|
50
|
+
simplecov (>= 0.7)
|
51
|
+
term-ansicolor
|
52
|
+
thor
|
53
|
+
diff-lcs (1.2.5)
|
54
|
+
docile (1.1.5)
|
46
55
|
erubis (2.6.6)
|
47
56
|
abstract (>= 1.0.0)
|
48
|
-
i18n (0.5.
|
49
|
-
json (1.
|
50
|
-
mail (2.2.
|
57
|
+
i18n (0.5.4)
|
58
|
+
json (1.8.1)
|
59
|
+
mail (2.2.20)
|
51
60
|
activesupport (>= 2.3.6)
|
52
61
|
i18n (>= 0.4.0)
|
53
62
|
mime-types (~> 1.16)
|
54
63
|
treetop (~> 1.4.8)
|
55
|
-
mime-types (1.
|
56
|
-
|
57
|
-
|
64
|
+
mime-types (1.25.1)
|
65
|
+
multi_json (1.10.1)
|
66
|
+
netrc (0.7.7)
|
67
|
+
polyglot (0.3.5)
|
68
|
+
rack (1.2.8)
|
58
69
|
rack-mount (0.6.14)
|
59
70
|
rack (>= 1.0.0)
|
60
71
|
rack-test (0.5.7)
|
@@ -73,39 +84,56 @@ GEM
|
|
73
84
|
rake (>= 0.8.7)
|
74
85
|
rdoc (~> 3.4)
|
75
86
|
thor (~> 0.14.4)
|
76
|
-
rake (10.
|
87
|
+
rake (10.3.2)
|
77
88
|
rdoc (3.12.2)
|
78
89
|
json (~> 1.4)
|
79
|
-
redis (3.0
|
80
|
-
redis-namespace (1.
|
81
|
-
redis (~> 3.0.0)
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
rspec-
|
90
|
-
|
91
|
-
|
92
|
-
|
90
|
+
redis (3.1.0)
|
91
|
+
redis-namespace (1.5.1)
|
92
|
+
redis (~> 3.0, >= 3.0.4)
|
93
|
+
rest-client (1.7.2)
|
94
|
+
mime-types (>= 1.16, < 3.0)
|
95
|
+
netrc (~> 0.7)
|
96
|
+
rspec (3.0.0)
|
97
|
+
rspec-core (~> 3.0.0)
|
98
|
+
rspec-expectations (~> 3.0.0)
|
99
|
+
rspec-mocks (~> 3.0.0)
|
100
|
+
rspec-core (3.0.3)
|
101
|
+
rspec-support (~> 3.0.0)
|
102
|
+
rspec-expectations (3.0.3)
|
103
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
104
|
+
rspec-support (~> 3.0.0)
|
105
|
+
rspec-mocks (3.0.3)
|
106
|
+
rspec-support (~> 3.0.0)
|
107
|
+
rspec-support (3.0.3)
|
108
|
+
simple-random (1.0.0)
|
109
|
+
simplecov (0.9.0)
|
110
|
+
docile (~> 1.1.0)
|
111
|
+
multi_json
|
112
|
+
simplecov-html (~> 0.8.0)
|
113
|
+
simplecov-html (0.8.0)
|
114
|
+
sinatra (1.2.9)
|
115
|
+
backports
|
116
|
+
rack (~> 1.1, < 1.5)
|
93
117
|
tilt (>= 1.2.2, < 2.0)
|
118
|
+
term-ansicolor (1.3.0)
|
119
|
+
tins (~> 1.0)
|
94
120
|
thor (0.14.6)
|
95
|
-
tilt (1.
|
96
|
-
|
121
|
+
tilt (1.4.1)
|
122
|
+
tins (1.3.1)
|
123
|
+
treetop (1.4.15)
|
97
124
|
polyglot
|
98
125
|
polyglot (>= 0.3.1)
|
99
|
-
tzinfo (0.3.
|
126
|
+
tzinfo (0.3.41)
|
100
127
|
|
101
128
|
PLATFORMS
|
102
129
|
ruby
|
103
130
|
|
104
131
|
DEPENDENCIES
|
105
132
|
appraisal
|
106
|
-
bundler (~> 1.
|
107
|
-
|
133
|
+
bundler (~> 1.6)
|
134
|
+
coveralls
|
135
|
+
rack-test
|
108
136
|
rails (~> 3.0.20)
|
109
137
|
rake
|
110
|
-
rspec (~>
|
138
|
+
rspec (~> 3.0)
|
111
139
|
split!
|
data/gemfiles/3.1.gemfile
CHANGED
data/gemfiles/3.1.gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
|
-
remote:
|
2
|
+
remote: ../
|
3
3
|
specs:
|
4
|
-
split (0.
|
4
|
+
split (0.7.2)
|
5
5
|
redis (>= 2.1)
|
6
6
|
redis-namespace (>= 1.1.0)
|
7
7
|
simple-random
|
@@ -38,31 +38,40 @@ GEM
|
|
38
38
|
activesupport (= 3.1.12)
|
39
39
|
activesupport (3.1.12)
|
40
40
|
multi_json (~> 1.0)
|
41
|
-
appraisal (0.
|
41
|
+
appraisal (1.0.0)
|
42
42
|
bundler
|
43
43
|
rake
|
44
|
+
thor (>= 0.14.0)
|
44
45
|
arel (2.2.3)
|
45
46
|
builder (3.0.4)
|
46
|
-
|
47
|
+
coveralls (0.7.0)
|
48
|
+
multi_json (~> 1.3)
|
49
|
+
rest-client
|
50
|
+
simplecov (>= 0.7)
|
51
|
+
term-ansicolor
|
52
|
+
thor
|
53
|
+
diff-lcs (1.2.5)
|
54
|
+
docile (1.1.5)
|
47
55
|
erubis (2.7.0)
|
48
|
-
hike (1.2.
|
49
|
-
i18n (0.6.
|
50
|
-
json (1.
|
56
|
+
hike (1.2.3)
|
57
|
+
i18n (0.6.11)
|
58
|
+
json (1.8.1)
|
51
59
|
mail (2.4.4)
|
52
60
|
i18n (>= 0.4.0)
|
53
61
|
mime-types (~> 1.16)
|
54
62
|
treetop (~> 1.4.8)
|
55
|
-
mime-types (1.
|
56
|
-
multi_json (1.
|
57
|
-
|
63
|
+
mime-types (1.25.1)
|
64
|
+
multi_json (1.10.1)
|
65
|
+
netrc (0.7.7)
|
66
|
+
polyglot (0.3.5)
|
58
67
|
rack (1.3.10)
|
59
68
|
rack-cache (1.2)
|
60
69
|
rack (>= 0.4)
|
61
70
|
rack-mount (0.8.3)
|
62
71
|
rack (>= 1.0.0)
|
63
|
-
rack-protection (1.5.
|
72
|
+
rack-protection (1.5.3)
|
64
73
|
rack
|
65
|
-
rack-ssl (1.3.
|
74
|
+
rack-ssl (1.3.4)
|
66
75
|
rack
|
67
76
|
rack-test (0.6.2)
|
68
77
|
rack (>= 1.0)
|
@@ -81,21 +90,33 @@ GEM
|
|
81
90
|
rake (>= 0.8.7)
|
82
91
|
rdoc (~> 3.4)
|
83
92
|
thor (~> 0.14.6)
|
84
|
-
rake (10.
|
93
|
+
rake (10.3.2)
|
85
94
|
rdoc (3.12.2)
|
86
95
|
json (~> 1.4)
|
87
|
-
redis (3.0
|
88
|
-
redis-namespace (1.
|
89
|
-
redis (~> 3.0.0)
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
rspec-
|
98
|
-
|
96
|
+
redis (3.1.0)
|
97
|
+
redis-namespace (1.5.1)
|
98
|
+
redis (~> 3.0, >= 3.0.4)
|
99
|
+
rest-client (1.7.2)
|
100
|
+
mime-types (>= 1.16, < 3.0)
|
101
|
+
netrc (~> 0.7)
|
102
|
+
rspec (3.0.0)
|
103
|
+
rspec-core (~> 3.0.0)
|
104
|
+
rspec-expectations (~> 3.0.0)
|
105
|
+
rspec-mocks (~> 3.0.0)
|
106
|
+
rspec-core (3.0.3)
|
107
|
+
rspec-support (~> 3.0.0)
|
108
|
+
rspec-expectations (3.0.3)
|
109
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
110
|
+
rspec-support (~> 3.0.0)
|
111
|
+
rspec-mocks (3.0.3)
|
112
|
+
rspec-support (~> 3.0.0)
|
113
|
+
rspec-support (3.0.3)
|
114
|
+
simple-random (1.0.0)
|
115
|
+
simplecov (0.9.0)
|
116
|
+
docile (~> 1.1.0)
|
117
|
+
multi_json
|
118
|
+
simplecov-html (~> 0.8.0)
|
119
|
+
simplecov-html (0.8.0)
|
99
120
|
sinatra (1.3.3)
|
100
121
|
rack (~> 1.3, >= 1.3.6)
|
101
122
|
rack-protection (~> 1.2)
|
@@ -104,21 +125,25 @@ GEM
|
|
104
125
|
hike (~> 1.2)
|
105
126
|
rack (~> 1.0)
|
106
127
|
tilt (~> 1.1, != 1.3.0)
|
128
|
+
term-ansicolor (1.3.0)
|
129
|
+
tins (~> 1.0)
|
107
130
|
thor (0.14.6)
|
108
|
-
tilt (1.4.
|
109
|
-
|
131
|
+
tilt (1.4.1)
|
132
|
+
tins (1.3.1)
|
133
|
+
treetop (1.4.15)
|
110
134
|
polyglot
|
111
135
|
polyglot (>= 0.3.1)
|
112
|
-
tzinfo (0.3.
|
136
|
+
tzinfo (0.3.41)
|
113
137
|
|
114
138
|
PLATFORMS
|
115
139
|
ruby
|
116
140
|
|
117
141
|
DEPENDENCIES
|
118
142
|
appraisal
|
119
|
-
bundler (~> 1.
|
120
|
-
|
143
|
+
bundler (~> 1.6)
|
144
|
+
coveralls
|
145
|
+
rack-test
|
121
146
|
rails (~> 3.1.12)
|
122
147
|
rake
|
123
|
-
rspec (~>
|
148
|
+
rspec (~> 3.0)
|
124
149
|
split!
|
data/gemfiles/3.2.gemfile
CHANGED
data/gemfiles/4.0.gemfile
CHANGED