moses-vanity 1.7.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +22 -0
- data/.gitignore +7 -0
- data/.rvmrc +3 -0
- data/.travis.yml +13 -0
- data/CHANGELOG +374 -0
- data/Gemfile +28 -0
- data/MIT-LICENSE +21 -0
- data/README.rdoc +108 -0
- data/Rakefile +189 -0
- data/bin/vanity +16 -0
- data/doc/_config.yml +2 -0
- data/doc/_layouts/_header.html +34 -0
- data/doc/_layouts/page.html +47 -0
- data/doc/_metrics.textile +12 -0
- data/doc/ab_testing.textile +210 -0
- data/doc/configuring.textile +45 -0
- data/doc/contributing.textile +93 -0
- data/doc/credits.textile +23 -0
- data/doc/css/page.css +83 -0
- data/doc/css/print.css +43 -0
- data/doc/css/syntax.css +7 -0
- data/doc/email.textile +129 -0
- data/doc/experimental.textile +31 -0
- data/doc/faq.textile +8 -0
- data/doc/identity.textile +43 -0
- data/doc/images/ab_in_dashboard.png +0 -0
- data/doc/images/clear_winner.png +0 -0
- data/doc/images/price_options.png +0 -0
- data/doc/images/sidebar_test.png +0 -0
- data/doc/images/signup_metric.png +0 -0
- data/doc/images/vanity.png +0 -0
- data/doc/index.textile +91 -0
- data/doc/metrics.textile +231 -0
- data/doc/rails.textile +89 -0
- data/doc/site.js +27 -0
- data/generators/templates/vanity_migration.rb +53 -0
- data/generators/vanity_generator.rb +8 -0
- data/lib/generators/templates/vanity_migration.rb +53 -0
- data/lib/generators/vanity_generator.rb +15 -0
- data/lib/vanity.rb +36 -0
- data/lib/vanity/adapters/abstract_adapter.rb +140 -0
- data/lib/vanity/adapters/active_record_adapter.rb +248 -0
- data/lib/vanity/adapters/mock_adapter.rb +157 -0
- data/lib/vanity/adapters/mongodb_adapter.rb +178 -0
- data/lib/vanity/adapters/redis_adapter.rb +160 -0
- data/lib/vanity/backport.rb +26 -0
- data/lib/vanity/commands/list.rb +21 -0
- data/lib/vanity/commands/report.rb +64 -0
- data/lib/vanity/commands/upgrade.rb +34 -0
- data/lib/vanity/experiment/ab_test.rb +507 -0
- data/lib/vanity/experiment/base.rb +214 -0
- data/lib/vanity/frameworks.rb +16 -0
- data/lib/vanity/frameworks/rails.rb +318 -0
- data/lib/vanity/helpers.rb +66 -0
- data/lib/vanity/images/x.gif +0 -0
- data/lib/vanity/metric/active_record.rb +85 -0
- data/lib/vanity/metric/base.rb +244 -0
- data/lib/vanity/metric/google_analytics.rb +83 -0
- data/lib/vanity/metric/remote.rb +53 -0
- data/lib/vanity/playground.rb +396 -0
- data/lib/vanity/templates/_ab_test.erb +28 -0
- data/lib/vanity/templates/_experiment.erb +5 -0
- data/lib/vanity/templates/_experiments.erb +7 -0
- data/lib/vanity/templates/_metric.erb +14 -0
- data/lib/vanity/templates/_metrics.erb +13 -0
- data/lib/vanity/templates/_report.erb +27 -0
- data/lib/vanity/templates/_vanity.js.erb +20 -0
- data/lib/vanity/templates/flot.min.js +1 -0
- data/lib/vanity/templates/jquery.min.js +19 -0
- data/lib/vanity/templates/vanity.css +26 -0
- data/lib/vanity/templates/vanity.js +82 -0
- data/lib/vanity/version.rb +11 -0
- data/test/adapters/redis_adapter_test.rb +17 -0
- data/test/experiment/ab_test.rb +771 -0
- data/test/experiment/base_test.rb +150 -0
- data/test/experiments/age_and_zipcode.rb +19 -0
- data/test/experiments/metrics/cheers.rb +3 -0
- data/test/experiments/metrics/signups.rb +2 -0
- data/test/experiments/metrics/yawns.rb +3 -0
- data/test/experiments/null_abc.rb +5 -0
- data/test/metric/active_record_test.rb +277 -0
- data/test/metric/base_test.rb +293 -0
- data/test/metric/google_analytics_test.rb +104 -0
- data/test/metric/remote_test.rb +109 -0
- data/test/myapp/app/controllers/application_controller.rb +2 -0
- data/test/myapp/app/controllers/main_controller.rb +7 -0
- data/test/myapp/config/boot.rb +110 -0
- data/test/myapp/config/environment.rb +10 -0
- data/test/myapp/config/environments/production.rb +0 -0
- data/test/myapp/config/routes.rb +3 -0
- data/test/passenger_test.rb +43 -0
- data/test/playground_test.rb +26 -0
- data/test/rails_dashboard_test.rb +37 -0
- data/test/rails_helper_test.rb +36 -0
- data/test/rails_test.rb +389 -0
- data/test/test_helper.rb +145 -0
- data/vanity.gemspec +26 -0
- metadata +202 -0
data/.autotest
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
Autotest.add_hook :initialize do |autotest|
|
3
|
+
%w{.git .DS_Store Gemfile bin doc html}.each do |exception|
|
4
|
+
autotest.add_exception(exception)
|
5
|
+
end
|
6
|
+
autotest.clear_mappings
|
7
|
+
autotest.add_mapping(/^test.*\/.*_test\.rb$/) { |filename, _| filename }
|
8
|
+
autotest.add_mapping(/test_helper.rb/) { |f, _| autotest.files_matching(/test\/.*_test\.rb$/) }
|
9
|
+
autotest.add_mapping(/^lib\/vanity\/(.*)\.rb/) do |filename, _|
|
10
|
+
file = File.basename(filename, '.rb')
|
11
|
+
dir = File.split(File.dirname(filename)).last
|
12
|
+
autotest.files_matching %r%^test/(#{file}|#{dir})_test.rb$%
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
# Don't run entire test suite when going from red to green
|
18
|
+
class Autotest
|
19
|
+
def tainted
|
20
|
+
false
|
21
|
+
end
|
22
|
+
end
|
data/.gitignore
ADDED
data/.rvmrc
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
rvm:
|
2
|
+
- 1.8.7
|
3
|
+
- 1.9.2
|
4
|
+
gemfile:
|
5
|
+
- Gemfile
|
6
|
+
env:
|
7
|
+
- DB=mongodb
|
8
|
+
- DB=redis
|
9
|
+
- DB=mysql
|
10
|
+
#- DB=postgres
|
11
|
+
before_script:
|
12
|
+
- "mysql -e 'create database vanity_test;' >/dev/null"
|
13
|
+
#- "psql -c 'create database vanity_test;' -U postgres >/dev/null"
|
data/CHANGELOG
ADDED
@@ -0,0 +1,374 @@
|
|
1
|
+
== 1.7.1 (2011-09-30)
|
2
|
+
|
3
|
+
Minor change in locating config file (Ariel Salomon)
|
4
|
+
|
5
|
+
Allow for table names in specified :timestamps (Peter Kovacs)
|
6
|
+
|
7
|
+
When a named scope includes a join, created_at can be ambiguous. Use
|
8
|
+
|
9
|
+
metric "Sky is limit" do
|
10
|
+
model Sky, :timestamp => 'skies.created_at'
|
11
|
+
end
|
12
|
+
|
13
|
+
to disambiguate.
|
14
|
+
|
15
|
+
Make vanity_identity method private on controller; ensure no default route
|
16
|
+
(Ariel Salomon)
|
17
|
+
|
18
|
+
Add Rails 2.3-compatible generator (Ariel Salomon)
|
19
|
+
|
20
|
+
Lazy Playground initialization for rails 3.1 (Jonathan del Strother)
|
21
|
+
|
22
|
+
Update documentation to reflect that host, port, and database options for redis
|
23
|
+
connections are deprecated in favor of using the connection option with a URI
|
24
|
+
(Patrick Joyce)
|
25
|
+
|
26
|
+
|
27
|
+
== 1.7.0 (2011-08-27)
|
28
|
+
|
29
|
+
1.7.0 adds support for ActionMailer, for example:
|
30
|
+
|
31
|
+
class UserMailer < ActionMailer::Base
|
32
|
+
def invite_email(user)
|
33
|
+
use_vanity_mailer user
|
34
|
+
mail :to => user.email, :subject => ab_test(:invite_subject)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
See the documentation for more details.
|
39
|
+
|
40
|
+
|
41
|
+
With 1.7.0 and moving forward, if you need to setup a database schema
|
42
|
+
(relational databases only), please use the generator:
|
43
|
+
|
44
|
+
$ rails generate vanity
|
45
|
+
$ rake db:migrate
|
46
|
+
|
47
|
+
|
48
|
+
Rails generator for AR migrations (Zaid Zawaideh)
|
49
|
+
|
50
|
+
A/B testing in ActionMailer (Joseph Sofaer)
|
51
|
+
|
52
|
+
Fix hung passenger processes when using Redis client (Chris Griego)
|
53
|
+
|
54
|
+
|
55
|
+
== 1.6.1 (2011-07-20)
|
56
|
+
|
57
|
+
Fixed cookie domain setting.
|
58
|
+
|
59
|
+
|
60
|
+
== 1.6.0 (2011-07-18)
|
61
|
+
|
62
|
+
If robots or spiders make up a significant portion of your sites traffic they
|
63
|
+
can affect your conversion rate. Vanity can optionally add participants to the
|
64
|
+
experiments using asynchronous JavaScript callbacks, which will keep almost all
|
65
|
+
robots out. To set this up simply do the following:
|
66
|
+
|
67
|
+
1. Vanity.playground.use_js!
|
68
|
+
2. Set Vanity.playground.add_participant_path = '/path/to/vanity/action'
|
69
|
+
3. Add <%= Vanity.vanity_js %> to the bottom of any view that needs to set up
|
70
|
+
an ab_test
|
71
|
+
|
72
|
+
|
73
|
+
Fix for metrics on rails 3 models (Esteban Pastorino).
|
74
|
+
|
75
|
+
Use JavaScript to report participants, useful for ignoring bots on publicly
|
76
|
+
accessible pages (Doug Cole).
|
77
|
+
|
78
|
+
AbTest#choose returns an Alternative rather than just the value (Doug Cole).
|
79
|
+
|
80
|
+
Add warnings instead of swallowing errors (Anthony Eden).
|
81
|
+
|
82
|
+
Fixing broken test for mongodb adapter (Joshua Krall).
|
83
|
+
|
84
|
+
Fix returning correct experiment when in test mode and manually set via
|
85
|
+
#chooses (Ryan Sonnek).
|
86
|
+
|
87
|
+
Don't round the conversion rate before using it, it affects the test results,
|
88
|
+
making them less accurate (Doug Cole).
|
89
|
+
|
90
|
+
Fixed loading config from yml when using other than redis adapter (Arttu Tervo)
|
91
|
+
|
92
|
+
Default to localhost unless host in config file (Arttu Tervo)
|
93
|
+
|
94
|
+
Fixed mongo connection adapter connect! when called after disconnect! (Arttu
|
95
|
+
Tervo)
|
96
|
+
|
97
|
+
Use mongo replica set connection if multiple hosts were given in YAML
|
98
|
+
configuration file (Arttu Tervo)
|
99
|
+
|
100
|
+
Cookie domain from rails configuration (Arttu Tervo)
|
101
|
+
|
102
|
+
Add bson_ext to Gemfile to load C extension for mongodb ruby driver, and
|
103
|
+
prevent Notice messages as the tests run (tenaciousflea)
|
104
|
+
|
105
|
+
Update redis-namespace dependency to 1.0 (Ville Lautanala)
|
106
|
+
|
107
|
+
|
108
|
+
== 1.5.3 (2011-04-11)
|
109
|
+
|
110
|
+
Added number of participants and number of converted participants to ab_test
|
111
|
+
template (Avishai Weiss).
|
112
|
+
|
113
|
+
|
114
|
+
== 1.5.2 (2011-04-11)
|
115
|
+
|
116
|
+
Fixed to work with redis-rb 2.2.0 (Kevin Menard).
|
117
|
+
|
118
|
+
Fixed to work with Postgresql: it complained that the index names generated by
|
119
|
+
add_index were too long, so I gave them shorter names (Robert Rasmussen).
|
120
|
+
|
121
|
+
Fixed SQL errors comparing an int to a varchar column, and no "as" on a column
|
122
|
+
alias (Robert Rasmussen).
|
123
|
+
|
124
|
+
Fixed auto-escaped text in the experiment template that I marked as html_safe
|
125
|
+
(Robert Rasmussen).
|
126
|
+
|
127
|
+
Added some Rails 3.x documentation to the 2-minute demo instructionsa (Andy Atkinson).
|
128
|
+
|
129
|
+
Fix to set collecting flag from vanity.yml config file.
|
130
|
+
|
131
|
+
|
132
|
+
== 1.5.1 (2010-12-20)
|
133
|
+
|
134
|
+
Fixes some minor bugs in RoR when including the Dashboard (netguru)
|
135
|
+
|
136
|
+
|
137
|
+
== 1.5.0 (2010-10-23)
|
138
|
+
|
139
|
+
Note: MongoDB URI scheme changed from mongo: to mongodb: to be consistent with
|
140
|
+
the rest of the civilized world. If you get an error because Vanity can't find
|
141
|
+
the MongoDB adapter, fear not! It's still there, just need to update your
|
142
|
+
config/vanity.yml file.
|
143
|
+
|
144
|
+
|
145
|
+
Rails 3 support (Adam Keys, Stephen Celis, Brian Leonard, Ryan Carver)
|
146
|
+
|
147
|
+
Changed MongoDB URI scheme from 'mongo://' to the standard 'mongodb://' and
|
148
|
+
renamed the mongodb adapter filename to make it match (JS Boulanger)
|
149
|
+
|
150
|
+
Added support for ERB in YAML configuration files (JS Boulanger)
|
151
|
+
|
152
|
+
Fixed initialization of playground's Rails defaults such that they can be
|
153
|
+
overriden in the environment (JS Boulanger)
|
154
|
+
|
155
|
+
|
156
|
+
== 1.4.0 (2010-08-06)
|
157
|
+
|
158
|
+
Note: Run this command to upgrade your database to 1.4, or you will not have
|
159
|
+
access to collected metrics and experiment data:
|
160
|
+
|
161
|
+
vanity upgrade
|
162
|
+
|
163
|
+
|
164
|
+
Connection adapters! We have a new way for managing connections which extends
|
165
|
+
to multiple adapters (not just Redis). The easiest is to use the configuration
|
166
|
+
file config/vanity.yml. For example:
|
167
|
+
|
168
|
+
development:
|
169
|
+
adapter: redis
|
170
|
+
production:
|
171
|
+
adapter: mongodb
|
172
|
+
|
173
|
+
We get to keep Redis, add new MongoDB adapter, but lose Mock. It's still there,
|
174
|
+
but there's a new way to use Vanity outside production: you can turn data
|
175
|
+
collection on/off.
|
176
|
+
|
177
|
+
Under Rails, data collection is turned off in all environments except
|
178
|
+
production. To turn if on/off:
|
179
|
+
|
180
|
+
Vanity.playground.collecting = true/false.
|
181
|
+
|
182
|
+
|
183
|
+
This release switches to latest Redis gem and uses redis-namespace (what took
|
184
|
+
me so long?) If your own code relies on the Redis gem, watch out: there are
|
185
|
+
some subtle incompatibilities between 1.x and 2.x.
|
186
|
+
|
187
|
+
|
188
|
+
Now using RVM, gemsets and Bundler to test Vanity in different configurations.
|
189
|
+
To run the full set of tests in all the supported versions of Ruby:
|
190
|
+
rake test:rubies
|
191
|
+
To test specific version of Ruby:
|
192
|
+
rake test:rubies[1.8.7]
|
193
|
+
To switch around:
|
194
|
+
rvm 1.9.2@vanity
|
195
|
+
|
196
|
+
* Added: Adapter API, see Vanity::Adapters::AbstractAdapter and
|
197
|
+
Vanity::Adapters::RedisAdapter.
|
198
|
+
* Added: MongoDB support.
|
199
|
+
* Added: Upgrade command.
|
200
|
+
* Added: Metric.last_update_at.
|
201
|
+
* Added: Vanity.playground.collecting. You want this to be true only in
|
202
|
+
production environment. When false, disables collecting of metric and
|
203
|
+
experiment data.
|
204
|
+
* Added: Remote metrics. Push data to remote service.
|
205
|
+
* Added: Partial support for multi-series metrics. Laying the ground for the
|
206
|
+
future.
|
207
|
+
* Change: Vanity.playground.redis and redis= methods are deprecated, use
|
208
|
+
connection and establish_connection instead.
|
209
|
+
* Removed: Metric.created_at, derived from experiment and never used.
|
210
|
+
|
211
|
+
|
212
|
+
== 1.3.0 (2010-03-01)
|
213
|
+
|
214
|
+
This release adds support for Google Analytics, AdWords and forking servers
|
215
|
+
(Passenger, Unicorn).
|
216
|
+
|
217
|
+
To view Google Analytics metrics from within Vanity, first make sure you are
|
218
|
+
using Garb. For example, in your Gemfile:
|
219
|
+
|
220
|
+
gem "vanity", "1.3.0"
|
221
|
+
gem "garb", "0.5.0"
|
222
|
+
|
223
|
+
Next, authenticate using your account credentials. For example, in your
|
224
|
+
config/environments/production.rb:
|
225
|
+
|
226
|
+
require "garb"
|
227
|
+
Garb::Session.login('..email..', '..password..', account_type: "GOOGLE") rescue nil
|
228
|
+
|
229
|
+
Last, define Vanity metrics that tap to Google Analytics metrics. For example:
|
230
|
+
|
231
|
+
metric "Acquisition: Visitors" do
|
232
|
+
description "Unique visitors on any given page, as tracked by Google Analytics"
|
233
|
+
google_analytics "UA-1828623-6", :visitors
|
234
|
+
end
|
235
|
+
|
236
|
+
* Added: Support for Google Analytics metrics, thanks to Tony Pitale's Garb and blog post: http://www.viget.com/extend/user-goal-tracking-in-rails-with-vanity-and-google-analytics/
|
237
|
+
* Added: Vanity query parameter that you can use to choose a particular alternative, e.g. to tie an advertisement banner with content of the site.
|
238
|
+
* Added: Command line "vanity list" catalogs all ongoing experiments, their alternatives (and fingerprints) and all metrics.
|
239
|
+
* Added: Playground.reconnect!, particularly useful when forking (Passenger, Unicorn, etc).
|
240
|
+
* Added: Vanity loads Redis configuration from config/redis.yml (if you have such a file).
|
241
|
+
* Changed: New way to specify connection configuration: Vanity.playground.redis = "localhost:6379". Use this instead of the separate host/port/db attribute.
|
242
|
+
* Changed: Rails integration now separates use_vanity method, filters and helpers.
|
243
|
+
* Changed: Explicit vanity_context_filter and vanity_reload_filter so you can skip them, or order filters relative to them.
|
244
|
+
* Fixed: If metric cannot be loaded (e.g. offline, no db access) show error message for that metric but don't break dashboard.
|
245
|
+
* Fixed: AbTest incorrectly calls identify method instead of identity (issue #2)
|
246
|
+
* Fixed: Running vanity command, automatically detects and loads Rails.
|
247
|
+
* Fixed: Vanity now picks up on load_path set from within config/environment.rb.
|
248
|
+
* Removed: Vanity.playground.define is deprecated. Bad choice for a method name. If you need this feature, make a suggestion and let's create a better API.
|
249
|
+
|
250
|
+
== 1.2.0 (2009-12-14)
|
251
|
+
This release introduces metrics backed by ActiveRecord. Use them when your model is already tracking a metric, and you get instant historical data.
|
252
|
+
|
253
|
+
Example, track sign ups using User model:
|
254
|
+
|
255
|
+
metric "Signups" do
|
256
|
+
model Account
|
257
|
+
end
|
258
|
+
|
259
|
+
Example, track satisfaction using Survey model:
|
260
|
+
metric "Satisfaction" do
|
261
|
+
model Survey, :average=>:rating
|
262
|
+
end
|
263
|
+
|
264
|
+
Example, track only high ratings:
|
265
|
+
metric "High ratings" do
|
266
|
+
model Rating, :conditions=>["stars >= 4"]
|
267
|
+
end
|
268
|
+
|
269
|
+
There's no need to call track! on these metrics.
|
270
|
+
|
271
|
+
* Added: Metrics backed by ActiveRecord.
|
272
|
+
* Added: track! and ab_test methods now available from Object (i.e. everywhere).
|
273
|
+
* Added: Playground.load!. Now loading all metrics and experiments from Rails initializer.
|
274
|
+
* Changed: Decoupled metric name from identifier. You can now define a metric with more descriptive name, e.g. "Cheers per second (user satisfaction)" and keep their ID simple. Identifier is matched against the file name (for metrics loaded from experiments/metrics).
|
275
|
+
* Changed: Metrics no longer defined on-demand, i.e. calling playground.metric either returns existing metric or raises exception.
|
276
|
+
* Changed: Playground.experiments returns hash instead of array.
|
277
|
+
* Changed: All dates in report are UTC, since we don't know which locale to use.
|
278
|
+
* Removed: Object.experiment is deprecated, please call Vanity.playground.experiment directly.
|
279
|
+
* Fixed: Playground no longer changes logging level on supplied logger.
|
280
|
+
|
281
|
+
== 1.1.1 (2009-12-4)
|
282
|
+
* Fixed: Binding issue that shows up on 1.8.6/7.
|
283
|
+
|
284
|
+
== 1.1.0 (2009-12-4)
|
285
|
+
This release introduces metrics. Metrics are the gateway drug to better software.
|
286
|
+
|
287
|
+
It’s as simple as defining a metric:
|
288
|
+
|
289
|
+
metric "Cheers" do
|
290
|
+
description "They love us, don't they?"
|
291
|
+
end
|
292
|
+
|
293
|
+
Tracking it from your code:
|
294
|
+
|
295
|
+
track! :cheers
|
296
|
+
|
297
|
+
And watching the graph from the Dashboard.
|
298
|
+
|
299
|
+
You can (should) also use metrics with your A/B tests, for example:
|
300
|
+
|
301
|
+
ab_test "Pricing options" do
|
302
|
+
metrics :signup
|
303
|
+
alternatives 15, 25, 29
|
304
|
+
end
|
305
|
+
|
306
|
+
This new usage may become requirement in a future release.
|
307
|
+
|
308
|
+
Much thanks to Ian Sefferman for fixing issues with Ruby 1.8.7 and Rails support.
|
309
|
+
|
310
|
+
* Added: Metrics.
|
311
|
+
* Added: Use Vanity.playground.mock! when running tests and you'd rather not access a live Redis server.
|
312
|
+
* Changed: A/B tests now using metrics for tracking.
|
313
|
+
* Changed: Now throwing NameError instead of LoadError when failing to load experiment/metric. NameError can be rescued on same line.
|
314
|
+
* Changed: New, easier URL mapping for Dashboard: map.vanity "/vanity", :controller=>:vanity.
|
315
|
+
* Changed: All tests are green on Ruby 1.8.6, 1.8.7 and 1.9.1.
|
316
|
+
* Changed: Switched to redis-rb from http://github.com/ezmobius/redis-rb.
|
317
|
+
* Deprecated: Please call experiment method with experiment identifier (a symbol) and not experiment name.
|
318
|
+
|
319
|
+
== 1.0.0 (2009-11-19)
|
320
|
+
This release changes the way you define a new experiment. You can use a method suitable for the type of experiment you want to define, or call the generic define method (previously: experiment method). For example:
|
321
|
+
|
322
|
+
ab_test "My A/B test" do
|
323
|
+
alternatives :a, :b
|
324
|
+
end
|
325
|
+
|
326
|
+
The experiment method is no longer overloaded: it looks up an experiment (loading its definition if necessary), but does not define an experiment. The ab_test method is overloaded, though this may change in the future.
|
327
|
+
|
328
|
+
In addition, the ab_goal! method is now track!. This method may be used for other tests in the future.
|
329
|
+
|
330
|
+
* Added: A/B test report now showing number of participants.
|
331
|
+
* Added: AbTest.score method accepts minimum probability (default 90), and
|
332
|
+
* Removed: Experiment.reset! method. Destroy and save have the same effect.
|
333
|
+
* Changed: Playground.define now requires an experiment type, ab_test is not the default any more.
|
334
|
+
* Changed: When you run Vanity in development mode (configuration.cache_classes = false), it will reload experiments on each request. You can also Vanity.playground.reload!.
|
335
|
+
* Changed: Fancy AJAX trickery in Rails console.
|
336
|
+
* Changed: You can break long experiment descriptions into multiple paragraphs using two consecutive newlines.
|
337
|
+
* Changed: AbTest confidence becomes probability; only returns choice alternative with probability equal or higher than that.
|
338
|
+
* Changed: ab_goal! becomes track!.
|
339
|
+
* Changed: Console becomes Dashboard, which is less confusing with rails console (script/console).
|
340
|
+
|
341
|
+
== 0.3.1 (2009-11-13)
|
342
|
+
* Changed: Redis 1.0 is now vendored into Vanity. This means one less dependecy ... actually two, since Redis brings with it RSpec.
|
343
|
+
|
344
|
+
== 0.3.0 (2009-11-13)
|
345
|
+
* Added: score now includes least performing alternatives, names and values.
|
346
|
+
* Added: shiny reports.
|
347
|
+
* Added: Rails console shows current experiments status and also allows you to choose which alternative you want to see.
|
348
|
+
* Changed: letters instead of numbers for options (option 1 => option A).
|
349
|
+
* Changed: experiment.alternatives is now an immutable snapshot.
|
350
|
+
* Changed: experiment.score returns populated alternative objects instead of structs.
|
351
|
+
* Changed: experiment.chooses uses Redis to store state, better for (when we get to) browser integration.
|
352
|
+
* Changed: experiment.chooses skips recording participant or conversion.
|
353
|
+
* Changed: to MIT license.
|
354
|
+
|
355
|
+
== 0.2.2 (2009-11-12)
|
356
|
+
* Added: vanity binary, with single command for generating a report.
|
357
|
+
* Added: return alternative by value from experiment.alternative(val) method.
|
358
|
+
* Added: reset an experiment by calling reset!.
|
359
|
+
* Added: experiment alternative name (option 1, option 2, etc).
|
360
|
+
* Added: new scoring algorithm: use experiment.score instead of alternative.z_score/confidence.
|
361
|
+
* Added: experiment.conclusion for plain English results.
|
362
|
+
|
363
|
+
== 0.2.1 (2009-11-11)
|
364
|
+
* Added: z-score and confidence level for A/B test alternatives.
|
365
|
+
* Added: test auto-completion and auto-outcome (complete_it, outcome_is).
|
366
|
+
* Changed: default alternatives are now false/true, so if can't decide outcome, fall back on false.
|
367
|
+
|
368
|
+
== 0.2.0 (2009-11-10)
|
369
|
+
* Added: experiment method on object, used to define and access experiments.
|
370
|
+
* Added: playground configuration (Vanity.playground.namespace = , etc).
|
371
|
+
* Added: use_vanity now accepts block instead of symbol.
|
372
|
+
* Changed: Vanity::Helpers becomes Vanity::Rails.
|
373
|
+
* Changed: A/B test experiments alternatives now handled using Alternatives object.
|
374
|
+
* Removed: A/B test measure method no longer in use.
|
data/Gemfile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
source :rubygems
|
2
|
+
gemspec
|
3
|
+
|
4
|
+
group :development do
|
5
|
+
gem "jekyll"
|
6
|
+
gem "rake"
|
7
|
+
gem "RedCloth"
|
8
|
+
gem "yard"
|
9
|
+
end
|
10
|
+
|
11
|
+
group :test do
|
12
|
+
gem "bson_ext"
|
13
|
+
gem "garb"
|
14
|
+
gem "mocha"
|
15
|
+
gem "mongo"
|
16
|
+
gem "bson_ext"
|
17
|
+
gem "mysql"
|
18
|
+
gem "passenger", "~>2.0"
|
19
|
+
gem "pg"
|
20
|
+
gem "rails", "~>2.3.8"
|
21
|
+
gem "rack"
|
22
|
+
gem "shoulda"
|
23
|
+
gem "timecop"
|
24
|
+
gem "webmock"
|
25
|
+
gem "ruby-debug", :platforms => :mri_18
|
26
|
+
gem "ruby-debug19", :platforms => :mri_19
|
27
|
+
gem "SystemTimer", "1.2.3", :platforms => :mri_18
|
28
|
+
end
|