ablab 0.1.1 → 0.2.0

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.
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'ablab'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ablab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Ongaro
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-21 00:00:00.000000000 Z
11
+ date: 2016-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.5
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.2.5
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: redis
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -25,33 +39,33 @@ dependencies:
25
39
  - !ruby/object:Gem::Version
26
40
  version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
- name: bundler
42
+ name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '1.10'
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '1.10'
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: rake
56
+ name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: '10.0'
61
+ version: '0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: '10.0'
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rspec
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -66,30 +80,44 @@ dependencies:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
- description: Minimal library for performing AB tests, measuring statistical significance.
83
+ description: Ablab - A/B testing on Rails
70
84
  email:
71
85
  - lukeongaro@gmail.com
72
86
  executables: []
73
87
  extensions: []
74
88
  extra_rdoc_files: []
75
89
  files:
76
- - ".gitignore"
77
- - ".rspec"
78
- - ".travis.yml"
79
- - Gemfile
80
- - README.md
90
+ - MIT-LICENSE
81
91
  - Rakefile
82
- - ablab.gemspec
83
- - bin/console
84
- - bin/setup
92
+ - app/assets/javascripts/ablab/application.js
93
+ - app/assets/javascripts/ablab/tracker.js
94
+ - app/assets/stylesheets/ablab/ablab.css
95
+ - app/assets/stylesheets/ablab/application.css
96
+ - app/controllers/ablab/application_controller.rb
97
+ - app/controllers/ablab/base_controller.rb
98
+ - app/helpers/ablab/ablab_helper.rb
99
+ - app/helpers/ablab/application_helper.rb
100
+ - app/views/ablab/base/dashboard.html.erb
101
+ - app/views/ablab/base/track.js.erb
102
+ - app/views/layouts/ablab/application.html.erb
103
+ - config/routes.rb
85
104
  - lib/ablab.rb
86
- - lib/ablab/controller.rb
105
+ - lib/ablab/engine.rb
106
+ - lib/ablab/helper.rb
87
107
  - lib/ablab/store.rb
88
108
  - lib/ablab/store/memory.rb
89
109
  - lib/ablab/store/redis.rb
90
110
  - lib/ablab/version.rb
91
- homepage: http://github.com/lucaong/ablab
92
- licenses: []
111
+ - lib/tasks/ablab_tasks.rake
112
+ - spec/ablab/helper_spec.rb
113
+ - spec/ablab/store/memory_spec.rb
114
+ - spec/ablab/store/redis_spec.rb
115
+ - spec/ablab/store/store_examples.rb
116
+ - spec/ablab_spec.rb
117
+ - spec/spec_helper.rb
118
+ homepage:
119
+ licenses:
120
+ - MIT
93
121
  metadata: {}
94
122
  post_install_message:
95
123
  rdoc_options: []
@@ -107,8 +135,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
135
  version: '0'
108
136
  requirements: []
109
137
  rubyforge_project:
110
- rubygems_version: 2.2.2
138
+ rubygems_version: 2.5.1
111
139
  signing_key:
112
140
  specification_version: 4
113
- summary: Minimal library for performing AB tests
114
- test_files: []
141
+ summary: Ablab - A/B testing on Rails
142
+ test_files:
143
+ - spec/ablab/helper_spec.rb
144
+ - spec/ablab/store/memory_spec.rb
145
+ - spec/ablab/store/redis_spec.rb
146
+ - spec/ablab/store/store_examples.rb
147
+ - spec/ablab_spec.rb
148
+ - spec/spec_helper.rb
data/.gitignore DELETED
@@ -1,10 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- dump.rdb
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --format documentation
2
- --color
data/.travis.yml DELETED
@@ -1,4 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.3
4
- before_install: gem install bundler -v 1.10.6
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in loveos-abtest.gemspec
4
- gemspec
data/README.md DELETED
@@ -1,76 +0,0 @@
1
- # ABLab
2
-
3
- A minimal library for performing AB-tests in Rails applications and checking
4
- their statistical significance.
5
-
6
-
7
- ## Installation
8
-
9
- Add this line to your application's Gemfile:
10
-
11
- ```ruby
12
- gem 'ablab'
13
- ```
14
-
15
- And then execute:
16
-
17
- $ bundle
18
-
19
- Or install it yourself as:
20
-
21
- $ gem install ablab
22
-
23
-
24
- ## Usage
25
-
26
- ```ruby
27
- # In `initializers/ablab.rb`
28
-
29
- ABLab.setup do
30
- store :redis, host: 'localhost', port: 6379
31
-
32
- experiment :product_page do
33
- description "Experiments on the product page"
34
-
35
- group :a, control: true, description: "control group"
36
- group :b, description: "show more products from the shop at the top"
37
- end
38
-
39
- experiment :search do
40
- description "Search experiments"
41
-
42
- group :a, control: true, description: "control group"
43
- group :b, description: "boost CTR"
44
- group :c, description: "boost GMV"
45
- end
46
- end
47
-
48
-
49
- # In application_controller.rb
50
-
51
- require 'ablab'
52
-
53
- class ApplicationController < ActionController::Base
54
- include ABLab::Controller
55
- end
56
-
57
-
58
- # In app controllers/views code
59
-
60
- experiment(:product_page).in_group?(:a) # => true or false
61
- experiment(:product_page).group # => :a or :b
62
-
63
- experiment(:product_page).track_view!
64
- experiment(:product_page).track_conversion!
65
-
66
-
67
- # Results of the experiment
68
- ABTest.experiments.each do |experiment|
69
- puts "#{experiment.name}: #{experiment.results.inspect}"
70
- end
71
- ```
72
-
73
-
74
- ## Contributing
75
-
76
- Bug reports and pull requests are welcome on [GitHub](https://github.com/lucaong/ablab).
data/ablab.gemspec DELETED
@@ -1,26 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'ablab/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "ablab"
8
- spec.version = ABLab::VERSION
9
- spec.authors = ["Luca Ongaro"]
10
- spec.email = ["lukeongaro@gmail.com"]
11
-
12
- spec.summary = "Minimal library for performing AB tests"
13
- spec.description = "Minimal library for performing AB tests, measuring statistical significance."
14
- spec.homepage = "http://github.com/lucaong/ablab"
15
-
16
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
- spec.bindir = "exe"
18
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_dependency "redis"
22
-
23
- spec.add_development_dependency "bundler", "~> 1.10"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec"
26
- end
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "loveos/abtest"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start
data/bin/setup DELETED
@@ -1,7 +0,0 @@
1
- #!/bin/bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
-
5
- bundle install
6
-
7
- # Do any other automated setup that you need to do here
@@ -1,16 +0,0 @@
1
- module ABLab
2
- module Controller
3
- private def experiment(name)
4
- @experiments ||= {}
5
- unless ABLab.experiments.has_key?(name)
6
- raise "No experiment with name #{name}"
7
- end
8
- @experiments[name] ||=
9
- ABLab.experiments[name].run(user_id_for_experiments)
10
- end
11
-
12
- private def user_id_for_experiments
13
- env['rack.session'].id
14
- end
15
- end
16
- end