split 0.7.2 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
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