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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c1834f125bb0c03db28dc8b364780d88ca80c91a
4
- data.tar.gz: c3ef6d85b761eda4171eacbc22aff42e25423a57
3
+ metadata.gz: f82715d8a40ce8c082c284b6943dd1e2ddb5687c
4
+ data.tar.gz: ea4eabce6bd35c108b821994ecb1a882fcac1d53
5
5
  SHA512:
6
- metadata.gz: c8a2e79917f954236b2f58170eabb68672bd710474bee06b3787fc5a876bf2c8af9948c5be471bcf372bf0cb558dc74dda6214d194008268fe3e979bc0c94917
7
- data.tar.gz: 42591e96c7458973b9eabb6e2e9c08d8e489ff6998701ff92424037f54462818248f0d536c8c5c3bd23da86092c1fca4ca3ee7b7430500b34dcfc21adebd6e34
6
+ metadata.gz: 12c72dce74d3d7065818408fa56edf3533929adf80a64244348883af2e573009ba865fcd74b585350b32a5616f6c4c11fe0b6c83336ee3a964696b3090b32156
7
+ data.tar.gz: 54c690bbfa4f7f9d99863ce0435c275f91d4e29ea4c291d352a7bbd89c019655dcee06c02d9918aa51a2211b549df2a5651a42928d4fae10f3a8f9738395fb88
@@ -29,3 +29,4 @@ gemfile:
29
29
 
30
30
  services:
31
31
  - redis-server
32
+ cache: bundler
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
- gem "split", :path => "../"
19
- end
15
+ end
@@ -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
 
@@ -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
- [![Gem Version](https://badge.fury.io/rb/split.png)](http://badge.fury.io/rb/split)
10
- [![Build Status](https://secure.travis-ci.org/andrew/split.png?branch=master)](http://travis-ci.org/andrew/split)
11
- [![Dependency Status](https://gemnasium.com/andrew/split.png)](https://gemnasium.com/andrew/split)
12
- [![Code Climate](https://codeclimate.com/github/andrew/split.png)](https://codeclimate.com/github/andrew/split)
13
- [![Coverage Status](https://coveralls.io/repos/andrew/split/badge.png)](https://coveralls.io/r/andrew/split)
9
+ [![Gem Version](https://badge.fury.io/rb/split.svg)](http://badge.fury.io/rb/split)
10
+ [![Build Status](https://secure.travis-ci.org/andrew/split.svg?branch=master)](http://travis-ci.org/andrew/split)
11
+ [![Dependency Status](https://gemnasium.com/andrew/split.svg)](https://gemnasium.com/andrew/split)
12
+ [![Code Climate](https://codeclimate.com/github/andrew/split.svg)](https://codeclimate.com/github/andrew/split)
13
+ [![Coverage Status](http://img.shields.io/coveralls/andrew/split.svg)](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
 
@@ -4,6 +4,5 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal"
6
6
  gem "rails", "~> 3.0.20"
7
- gem "split", :path=>"../"
8
7
 
9
- gemspec :path=>"../"
8
+ gemspec :path => "../"
@@ -1,7 +1,7 @@
1
1
  PATH
2
- remote: /Users/andrew/code/split
2
+ remote: ../
3
3
  specs:
4
- split (0.6.1)
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.5.1)
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
- diff-lcs (1.2.2)
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.0)
49
- json (1.7.7)
50
- mail (2.2.19)
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.23)
56
- polyglot (0.3.3)
57
- rack (1.2.7)
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.0.4)
87
+ rake (10.3.2)
77
88
  rdoc (3.12.2)
78
89
  json (~> 1.4)
79
- redis (3.0.3)
80
- redis-namespace (1.2.1)
81
- redis (~> 3.0.0)
82
- rspec (2.13.0)
83
- rspec-core (~> 2.13.0)
84
- rspec-expectations (~> 2.13.0)
85
- rspec-mocks (~> 2.13.0)
86
- rspec-core (2.13.1)
87
- rspec-expectations (2.13.0)
88
- diff-lcs (>= 1.1.3, < 2.0)
89
- rspec-mocks (2.13.0)
90
- simple-random (0.9.3)
91
- sinatra (1.2.8)
92
- rack (~> 1.1)
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.3.7)
96
- treetop (1.4.12)
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.37)
126
+ tzinfo (0.3.41)
100
127
 
101
128
  PLATFORMS
102
129
  ruby
103
130
 
104
131
  DEPENDENCIES
105
132
  appraisal
106
- bundler (~> 1.3)
107
- rack-test (>= 0.5.7)
133
+ bundler (~> 1.6)
134
+ coveralls
135
+ rack-test
108
136
  rails (~> 3.0.20)
109
137
  rake
110
- rspec (~> 2.12)
138
+ rspec (~> 3.0)
111
139
  split!
@@ -4,6 +4,5 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal"
6
6
  gem "rails", "~> 3.1.12"
7
- gem "split", :path=>"../"
8
7
 
9
- gemspec :path=>"../"
8
+ gemspec :path => "../"
@@ -1,7 +1,7 @@
1
1
  PATH
2
- remote: /Users/andrew/code/split
2
+ remote: ../
3
3
  specs:
4
- split (0.6.1)
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.5.2)
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
- diff-lcs (1.2.4)
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.2)
49
- i18n (0.6.4)
50
- json (1.7.7)
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.23)
56
- multi_json (1.7.2)
57
- polyglot (0.3.3)
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.0)
72
+ rack-protection (1.5.3)
64
73
  rack
65
- rack-ssl (1.3.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.0.4)
93
+ rake (10.3.2)
85
94
  rdoc (3.12.2)
86
95
  json (~> 1.4)
87
- redis (3.0.4)
88
- redis-namespace (1.3.0)
89
- redis (~> 3.0.0)
90
- rspec (2.13.0)
91
- rspec-core (~> 2.13.0)
92
- rspec-expectations (~> 2.13.0)
93
- rspec-mocks (~> 2.13.0)
94
- rspec-core (2.13.1)
95
- rspec-expectations (2.13.0)
96
- diff-lcs (>= 1.1.3, < 2.0)
97
- rspec-mocks (2.13.1)
98
- simple-random (0.9.3)
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.0)
109
- treetop (1.4.12)
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.37)
136
+ tzinfo (0.3.41)
113
137
 
114
138
  PLATFORMS
115
139
  ruby
116
140
 
117
141
  DEPENDENCIES
118
142
  appraisal
119
- bundler (~> 1.3)
120
- rack-test (>= 0.5.7)
143
+ bundler (~> 1.6)
144
+ coveralls
145
+ rack-test
121
146
  rails (~> 3.1.12)
122
147
  rake
123
- rspec (~> 2.12)
148
+ rspec (~> 3.0)
124
149
  split!
@@ -4,6 +4,5 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal"
6
6
  gem "rails", "~> 3.2.13"
7
- gem "split", :path=>"../"
8
7
 
9
- gemspec :path=>"../"
8
+ gemspec :path => "../"
@@ -4,6 +4,5 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal"
6
6
  gem "rails", "4.0.0.rc1"
7
- gem "split", :path=>"../"
8
7
 
9
- gemspec :path=>"../"
8
+ gemspec :path => "../"
@@ -1,5 +1,9 @@
1
1
  module Split
2
2
  module DashboardHelpers
3
+ def h(text)
4
+ Rack::Utils.escape_html(text)
5
+ end
6
+
3
7
  def url(*path_parts)
4
8
  [ path_prefix, path_parts ].join("/").squeeze('/')
5
9
  end