abingo 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- abingo (2.0.1)
4
+ abingo (2.0.2)
5
5
  rails (~> 3.0)
6
6
 
7
7
  GEM
@@ -51,7 +51,7 @@ GEM
51
51
  mime-types (~> 1.16)
52
52
  treetop (~> 1.4.8)
53
53
  mime-types (1.19)
54
- multi_json (1.3.7)
54
+ multi_json (1.5.0)
55
55
  pg (0.14.1)
56
56
  polyglot (0.3.3)
57
57
  rack (1.4.1)
@@ -76,7 +76,7 @@ GEM
76
76
  rake (>= 0.8.7)
77
77
  rdoc (~> 3.4)
78
78
  thor (>= 0.14.6, < 2.0)
79
- rake (10.0.2)
79
+ rake (0.8.7)
80
80
  rdoc (3.12)
81
81
  json (~> 1.4)
82
82
  ruby-debug-base19 (0.11.25)
@@ -108,4 +108,5 @@ DEPENDENCIES
108
108
  abingo!
109
109
  contest
110
110
  pg
111
+ rake (= 0.8.7)
111
112
  ruby-debug19
@@ -1,5 +1,4 @@
1
- A/Bingo Version 1.0.3
2
- ======
1
+ # A/Bingo
3
2
 
4
3
  Rails A/B testing. One minute to install. One line to set up a new A/B test.
5
4
  One line to track conversion.
@@ -9,48 +8,58 @@ For usage notes, see: http://www.bingocardcreator.com/abingo
9
8
  Installation instructions are below usage examples.
10
9
 
11
10
  Key default features:
12
- -- Conversions only tracked once per individual.
13
- -- Conversions only tracked if individual saw test.
14
- -- Same individual ALWAYS sees same alternative for same test.
15
- -- Syntax sugar. Specify alternatives as a range, array,
16
- hash of alternative to weighting, or just let it default to true or false.
17
- -- A simple z-test of statistical significance, with output so clear anyone in your organization
18
- can understand it.
19
11
 
20
- Example: View
12
+ * Conversions only tracked once per individual.
13
+ * Conversions only tracked if individual saw test.
14
+ * Same individual ALWAYS sees same alternative for same test.
15
+ * Syntax sugar. Specify alternatives as a range, array, hash of alternative to weighting, or just let it default to true or false.
16
+ * A simple z-test of statistical significance, with output so clear anyone in your organization can understand it.
21
17
 
18
+ ## Example: View
19
+
20
+ ``` erb
22
21
  <% ab_test(@abingo_identity, "login_button", ["/images/button1.jpg", "/images/button2.jpg"]) do |button_file| %>
23
22
  <%= img_tag(button_file, :alt => "Login!") %>
24
23
  <% end %>
24
+ ```
25
25
 
26
- Example: Controller
26
+ ## Example: Controller
27
27
 
28
+ ``` ruby
28
29
  def register_new_user
29
30
  #See what level of free points maximizes users' decision to buy replacement points.
30
31
  @starter_points = ab_test(@abingo_identity, "new_user_free_points", [100, 200, 300])
31
32
  end
33
+ ```
32
34
 
33
- Example: Controller
35
+ ## Example: Controller
34
36
 
37
+ ``` ruby
35
38
  def registration
36
- if (ab_test(@abingo_identity, "send_welcome_email"), :conversion => "purchase")
39
+ if (ab_test(@abingo_identity, "send_welcome_email", :conversion => "purchase"))
37
40
  #send the email, track to see if it later increases conversion to full version
38
41
  end
39
42
  end
43
+ ```
40
44
 
41
- Example: Conversion tracking (in a controller!)
45
+ ## Example: Conversion tracking (in a controller!)
42
46
 
47
+ ``` ruby
43
48
  def buy_new_points
44
49
  #some business logic
45
50
  @abingo_identity.bingo!("buy_new_points") #Either a conversion named with :conversion or a test name.
46
51
  end
52
+ ```
47
53
 
48
- Example: Conversion tracking (in a view)
54
+ ## Example: Conversion tracking (in a view)
49
55
 
56
+ ``` erb
50
57
  Thanks for signing up, dude! <% @abingo_identity.bingo!("signup_page_redesign") >
58
+ ```
51
59
 
52
- Example: Statistical Significance Testing
60
+ ## Example: Statistical Significance Testing
53
61
 
62
+ ``` irb
54
63
  Abingo::Experiment.last.describe_result_in_words
55
64
  => "The best alternative you have is: [0], which had 130 conversions from 5000 participants (2.60%).
56
65
  The other alternative was [1], which had 1800 conversions from 100000 participants (1.80%).
@@ -58,23 +67,26 @@ Abingo::Experiment.last.describe_result_in_words
58
67
  confident that it is the result of your alternatives actually mattering, rather than being due to
59
68
  random chance. However, this doesn't say anything about how much the first alternative is really
60
69
  likely to be better by."
70
+ ```
61
71
 
62
- Installation
63
- =======
72
+ ## Installation
64
73
 
65
74
  1) REQUIRED: You'll need to generate a DB migration to prepare two tables,
66
75
  then migrate your database. (Note: slight edits required if you use the table names
67
76
  "experiments" or "alternatives" at present.) Note: if you are upgrading to A/Bingo 1.0.0, you'll
68
77
  want to do this again.
69
78
 
79
+ ``` shell
70
80
  ruby script/generate abingo_migration
71
81
  rake db:migrate
82
+ ```
72
83
 
73
84
  2) REQUIRED: You need to tell A/Bingo a user's identity so that it knows who is
74
85
  who if they come back to a test. (The same identity will ALWAYS see the same
75
86
  alternative for the same test.) How you do this is up to you -- I suggest integrating
76
87
  with your login/account infrastructure. The simplest thing that can possibly work
77
88
 
89
+ ``` ruby
78
90
  #Somewhere in application.rb
79
91
  before_filter :set_abingo_identity
80
92
 
@@ -86,6 +98,7 @@ def set_abingo_identity
86
98
  session[:abingo_identity] = @abingo_identity.identity
87
99
  end
88
100
  end
101
+ ```
89
102
 
90
103
  3) RECOMMENDED: A/Bingo makes HEAVY use of the cache to reduce load on the
91
104
  database and share potentially long-lived "temporary" data, such as what alternative
@@ -103,8 +116,10 @@ that may not be the worse thing in the world.
103
116
 
104
117
  A/Bingo defaults to using the same cache store as Rails. If you want to change it
105
118
 
119
+ ``` ruby
106
120
  #production.rb
107
121
  Abingo.cache = ActiveSupport::Cache::MemCacheStore.new("cache.example.com:12345") #best if really memcacheDB
122
+ ```
108
123
 
109
124
 
110
125
  Copyright (c) 2009-2010 Patrick McKenzie, released under the MIT license
@@ -16,4 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Abingo::VERSION
17
17
 
18
18
  gem.add_dependency "rails", "~> 3.0"
19
+ gem.add_development_dependency "rake", "0.8.7"
19
20
  end
@@ -70,7 +70,7 @@ class Abingo
70
70
 
71
71
  def initialize(identity)
72
72
  @identity = identity
73
- super
73
+ super()
74
74
  end
75
75
 
76
76
  #A simple convenience method for doing an A/B test. Returns true or false.
@@ -1,3 +1,3 @@
1
1
  class Abingo
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abingo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-25 00:00:00.000000000 Z
12
+ date: 2012-12-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70225753383800 !ruby/object:Gem::Requirement
16
+ requirement: &70317691378360 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,18 @@ dependencies:
21
21
  version: '3.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70225753383800
24
+ version_requirements: *70317691378360
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70317691377460 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - =
31
+ - !ruby/object:Gem::Version
32
+ version: 0.8.7
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70317691377460
25
36
  description: A split testing framework for Rails 3.x.x
26
37
  email:
27
38
  - me@glenngillen.com
@@ -33,7 +44,7 @@ files:
33
44
  - Gemfile
34
45
  - Gemfile.lock
35
46
  - MIT-LICENSE
36
- - README
47
+ - README.md
37
48
  - Rakefile
38
49
  - abingo.gemspec
39
50
  - generators/abingo_migration/abingo_migration_generator.rb
@@ -66,7 +77,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
77
  version: '0'
67
78
  segments:
68
79
  - 0
69
- hash: -1961958621509272273
80
+ hash: 1702120110109038062
70
81
  required_rubygems_version: !ruby/object:Gem::Requirement
71
82
  none: false
72
83
  requirements:
@@ -75,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
86
  version: '0'
76
87
  segments:
77
88
  - 0
78
- hash: -1961958621509272273
89
+ hash: 1702120110109038062
79
90
  requirements: []
80
91
  rubyforge_project:
81
92
  rubygems_version: 1.8.15