vanity 2.2.9 → 3.0.2

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.
Files changed (56) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/test.yml +55 -0
  3. data/Appraisals +24 -20
  4. data/CHANGELOG +20 -1
  5. data/Gemfile +2 -1
  6. data/Gemfile.lock +24 -14
  7. data/README.md +14 -16
  8. data/gemfiles/rails42.gemfile +6 -6
  9. data/gemfiles/rails42.gemfile.lock +94 -85
  10. data/gemfiles/rails42_protected_attributes.gemfile +6 -6
  11. data/gemfiles/rails42_protected_attributes.gemfile.lock +96 -74
  12. data/gemfiles/{rails5.gemfile → rails51.gemfile} +6 -6
  13. data/gemfiles/rails51.gemfile.lock +285 -0
  14. data/gemfiles/{rails41.gemfile → rails52.gemfile} +6 -6
  15. data/gemfiles/rails52.gemfile.lock +295 -0
  16. data/gemfiles/{rails32.gemfile → rails60.gemfile} +6 -9
  17. data/gemfiles/rails60.gemfile.lock +293 -0
  18. data/gemfiles/rails61.gemfile +33 -0
  19. data/gemfiles/rails61.gemfile.lock +293 -0
  20. data/lib/generators/templates/add_participants_unique_index_migration.rb.erb +24 -0
  21. data/lib/generators/templates/{add_unique_indexes_migration.rb → add_unique_indexes_migration.rb.erb} +1 -1
  22. data/lib/generators/templates/{vanity_migration.rb → vanity_migration.rb.erb} +2 -2
  23. data/lib/generators/vanity/migration_generator.rb +34 -0
  24. data/lib/vanity/adapters/active_record_adapter.rb +15 -5
  25. data/lib/vanity/adapters/redis_adapter.rb +20 -20
  26. data/lib/vanity/commands/report.rb +4 -3
  27. data/lib/vanity/experiment/ab_test.rb +3 -2
  28. data/lib/vanity/frameworks/rails.rb +20 -9
  29. data/lib/vanity/locales/vanity.ru.yml +50 -0
  30. data/lib/vanity/templates/_experiment.erb +3 -3
  31. data/lib/vanity/templates/_experiments.erb +1 -1
  32. data/lib/vanity/templates/_metrics.erb +1 -1
  33. data/lib/vanity/templates/_report.erb +2 -2
  34. data/lib/vanity/templates/vanity.css +5 -5
  35. data/lib/vanity/version.rb +1 -1
  36. data/test/adapters/redis_adapter_test.rb +8 -12
  37. data/test/adapters/shared_tests.rb +7 -6
  38. data/test/commands/report_test.rb +13 -1
  39. data/test/configuration_test.rb +15 -2
  40. data/test/dummy/app/mailers/vanity_mailer.rb +3 -1
  41. data/test/dummy/config/initializers/secret_token.rb +5 -2
  42. data/test/dummy/config/routes.rb +17 -3
  43. data/test/experiment/ab_test.rb +3 -3
  44. data/test/frameworks/rails/action_controller_test.rb +12 -6
  45. data/test/frameworks/rails/action_mailer_test.rb +0 -1
  46. data/test/metric/active_record_test.rb +8 -2
  47. data/test/test_helper.rb +57 -10
  48. data/test/web/rails/dashboard_test.rb +19 -10
  49. data/vanity.gemspec +1 -1
  50. metadata +20 -19
  51. data/.travis.yml +0 -33
  52. data/gemfiles/rails32.gemfile.lock +0 -242
  53. data/gemfiles/rails41.gemfile.lock +0 -230
  54. data/gemfiles/rails5.gemfile.lock +0 -256
  55. data/lib/generators/vanity/add_unique_indexes_generator.rb +0 -15
  56. data/lib/generators/vanity_generator.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ca984620557d326a44e57c76e179701e43c784aa
4
- data.tar.gz: 3a27cad8226fbdf3e56709291b1ed2afc1793acd
2
+ SHA256:
3
+ metadata.gz: 0456d4b28fe4ce9c097421b2b808846d4347b1f09221224b971d887ac426d118
4
+ data.tar.gz: 8b1af8dbe98eee9d186940c402228d7ba80463b3c6f141c8bee6efa0901c1b3b
5
5
  SHA512:
6
- metadata.gz: 1e3a77b2540e8726b77bc6f5ec80226f39b7f499abd271d2e5bc20c51131998472e0dffa0879cdf799e1a4de7e7b6cc052e1ea2e87b85fc09bb584df21e8293c
7
- data.tar.gz: 761fb69735eb0b02e8267a24243bb7cf923ccd8880a14ed691ae55f207aa73c4bed6e5c2566e6179aa264c6defacf519462db3c8106830e5a1432f53607d590c
6
+ metadata.gz: 1f5a94133798c016357e41cc3c57edafc4b74402b54803531074c10ee7595d8218cbb02d34adf911c32e82265d3ee3215201bd8fb6a880e7b51d85784e080330
7
+ data.tar.gz: 59e988be523633654f628e212f5953d1a92d140f9e2e2dc1ecfe827b48475814f6690f0f399e6511396ca7c81e4d206fb392698778ff3674907cacdd2bb4b5d7
@@ -0,0 +1,55 @@
1
+ name: Test
2
+ on:
3
+ push:
4
+ branches:
5
+ - master
6
+ pull_request:
7
+ branches: '*'
8
+
9
+ jobs:
10
+ test:
11
+ name: Test
12
+ runs-on: ubuntu-latest
13
+ timeout-minutes: 15
14
+ services:
15
+ redis:
16
+ image: redis
17
+ ports:
18
+ - 6379:6379
19
+ mongo:
20
+ image: mongo
21
+ ports:
22
+ - 27017:27017
23
+ strategy:
24
+ matrix:
25
+ ruby:
26
+ - 2.5
27
+ # - jruby-9.2.20.1
28
+ db:
29
+ - mongodb
30
+ - redis
31
+ - active_record
32
+ gemfile:
33
+ - gemfiles/rails42.gemfile
34
+ - gemfiles/rails42_protected_attributes.gemfile
35
+ - gemfiles/rails51.gemfile
36
+ - gemfiles/rails52.gemfile
37
+ - gemfiles/rails60.gemfile
38
+ - gemfiles/rails61.gemfile
39
+ exclude:
40
+ - ruby: jruby-9.1.13.0
41
+ gemfile: gemfiles/rails5.gemfile
42
+ env:
43
+ DB: ${{ matrix.db }}
44
+ BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
45
+ steps:
46
+ - name: Checkout code
47
+ uses: actions/checkout@v2
48
+
49
+ - name: Set up Ruby
50
+ uses: ruby/setup-ruby@v1
51
+ with:
52
+ ruby-version: ${{ matrix.ruby }}
53
+ bundler-cache: true
54
+ - name: Run Tests
55
+ run: bundle exec rake test
data/Appraisals CHANGED
@@ -1,38 +1,42 @@
1
- appraise "rails32" do
1
+ appraise "rails42" do
2
2
  gem "mocha", "~> 1.0", :require=>false
3
- gem "minitest", "~>4.2.0"
4
- gem "rails", "3.2.22"
5
- gem "minitest_tu_shim", "~> 1.3.3", :platforms => :mri_22
6
- gem "fastthread", :git => "git://github.com/zoltankiss/fastthread.git", :platforms => :mri_20
3
+ gem "rails", "4.2.9"
4
+ gem "fastthread", :github => "zoltankiss/fastthread", :platforms => :mri_20
7
5
  gem "passenger", "~>3.0"
8
- gem "test-unit", "~> 3.0"
9
6
  end
10
7
 
11
- appraise "rails41" do
8
+ appraise "rails42-protected_attributes" do
9
+ gem "protected_attributes", "1.1.0"
12
10
  gem "mocha", "~> 1.0", :require=>false
13
- gem "rails", "4.1.9"
14
- gem "fastthread", :git => "git://github.com/zoltankiss/fastthread.git", :platforms => :mri_20
11
+ gem "rails", "4.2.9"
12
+ gem "fastthread", :github => "zoltankiss/fastthread", :platforms => :mri_20
15
13
  gem "passenger", "~>3.0"
16
14
  end
17
15
 
18
- appraise "rails42" do
16
+ appraise "rails51" do
19
17
  gem "mocha", "~> 1.0", :require=>false
20
- gem "rails", "4.2.0"
21
- gem "fastthread", :git => "git://github.com/zoltankiss/fastthread.git", :platforms => :mri_20
18
+ gem "rails", "~>5.1.0"
19
+ gem "fastthread", :github => "zoltankiss/fastthread", :platforms => :mri_20
22
20
  gem "passenger", "~>3.0"
23
21
  end
24
22
 
25
- appraise "rails42-protected_attributes" do
26
- gem "protected_attributes", "1.1.0"
23
+ appraise "rails52" do
27
24
  gem "mocha", "~> 1.0", :require=>false
28
- gem "rails", "4.2.0"
29
- gem "fastthread", :git => "git://github.com/zoltankiss/fastthread.git", :platforms => :mri_20
25
+ gem "rails", "~>5.2.0"
26
+ gem "fastthread", :github => "zoltankiss/fastthread", :platforms => :mri_20
30
27
  gem "passenger", "~>3.0"
31
28
  end
32
29
 
33
- appraise "rails5" do
30
+ appraise "rails60" do
34
31
  gem "mocha", "~> 1.0", :require=>false
35
- gem "rails", "5.0.0"
36
- gem "fastthread", :git => "git://github.com/zoltankiss/fastthread.git", :platforms => :mri_20
32
+ gem "rails", "~>5.2.0"
33
+ gem "fastthread", :github => "zoltankiss/fastthread", :platforms => :mri_20
37
34
  gem "passenger", "~>3.0"
38
- end
35
+ end
36
+
37
+ appraise "rails61" do
38
+ gem "mocha", "~> 1.0", :require=>false
39
+ gem "rails", "~>5.2.0"
40
+ gem "fastthread", :github => "zoltankiss/fastthread", :platforms => :mri_20
41
+ gem "passenger", "~>3.0"
42
+ end
data/CHANGELOG CHANGED
@@ -1,4 +1,23 @@
1
- == Unreleased
1
+ == 3.0.2 (2022-01-27)
2
+
3
+ * Fix AbTest#alternative_for to always prefer persisted participants (@tgrathwell)
4
+
5
+ == 3.0.1 (2022-01-26)
6
+
7
+ * Update template rendering and update_attributes for Rails 6.1 compatibility (@bensheldon)
8
+
9
+ == 3.0.0 (2018-11-02)
10
+
11
+ * Fully destroy experiments using the Redis adapter (@urbanautomaton)
12
+ * Fix support for rails 5.1, 5.2 migrations (@phillbaker)
13
+ * Support for redis 4 (#334) (@askehansen)
14
+ * Drop support for redis-rb <= 3.2.0 (@phillbaker)
15
+ * Drop support for rails 2, test recent rubies (@phillbaker)
16
+
17
+ == 2.2.10 (2018-03-18)
18
+
19
+ * Fix broken table size in report dashboard (#339) (@ilyasovd)
20
+ * Prevent dupe participation in same experiment (#335)(@pihman)
2
21
 
3
22
  == 2.2.9 (2018-02-03)
4
23
 
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source 'https://rubygems.org'
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
2
3
 
3
4
  # "development" gems in gemspec are required for testing, gems in the
4
5
  # development group here are for documentation
@@ -8,7 +9,7 @@ gemspec development_group: :test
8
9
  gem "rack"
9
10
 
10
11
  # Persistence
11
- gem "redis", ">= 2.1"
12
+ gem "redis", ">= 3.2.1"
12
13
  gem "redis-namespace", ">= 1.1.0"
13
14
  gem "mongo", "~> 2.1"
14
15
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vanity (2.2.9)
4
+ vanity (3.0.2)
5
5
  i18n
6
6
 
7
7
  GEM
@@ -15,7 +15,7 @@ GEM
15
15
  activerecord (>= 2.2)
16
16
  activesupport (2.3.14)
17
17
  addressable (2.2.7)
18
- appraisal (1.0.3)
18
+ appraisal (2.4.1)
19
19
  bundler
20
20
  rake
21
21
  thor (>= 0.14.0)
@@ -32,16 +32,19 @@ GEM
32
32
  execjs
33
33
  coffee-script-source (1.9.1)
34
34
  colorator (0.1)
35
+ concurrent-ruby (1.1.9)
35
36
  crack (0.3.1)
36
37
  execjs (2.5.2)
37
38
  fakefs (0.6.7)
38
39
  fast-stemmer (1.0.2)
39
- ffi (1.9.8)
40
+ ffi (1.15.5)
41
+ ffi (1.15.5-java)
40
42
  garb (0.9.1)
41
43
  activesupport (>= 2.2.0)
42
44
  crack (>= 0.1.6)
43
45
  hitimes (1.2.2)
44
- i18n (0.7.0)
46
+ i18n (1.9.1)
47
+ concurrent-ruby (~> 1.0)
45
48
  integration (0.1.0)
46
49
  jdbc-sqlite3 (3.8.7)
47
50
  jekyll (2.5.3)
@@ -85,24 +88,31 @@ GEM
85
88
  coderay (~> 1.1.0)
86
89
  method_source (~> 0.8.1)
87
90
  slop (~> 3.4)
91
+ pry (0.10.3-java)
92
+ coderay (~> 1.1.0)
93
+ method_source (~> 0.8.1)
94
+ slop (~> 3.4)
95
+ spoon (~> 0.0)
88
96
  pygments.rb (0.6.3)
89
97
  posix-spawn (~> 0.3.6)
90
98
  yajl-ruby (~> 1.2.0)
91
99
  rack (1.1.3)
92
- rake (10.1.0)
100
+ rake (13.0.6)
93
101
  rb-fsevent (0.9.4)
94
102
  rb-inotify (0.9.5)
95
103
  ffi (>= 0.5.0)
96
104
  redcarpet (3.2.3)
97
- redis (3.0.6)
98
- redis-namespace (1.3.2)
99
- redis (~> 3.0.4)
105
+ redis (4.0.3)
106
+ redis-namespace (1.6.0)
107
+ redis (>= 3.0.4)
100
108
  rubystats (0.2.5)
101
109
  safe_yaml (1.0.4)
102
110
  sass (3.4.13)
103
111
  slop (3.6.0)
112
+ spoon (0.0.6)
113
+ ffi
104
114
  sqlite3 (1.3.10)
105
- thor (0.19.1)
115
+ thor (1.2.1)
106
116
  timecop (0.3.5)
107
117
  timers (4.0.1)
108
118
  hitimes
@@ -111,8 +121,8 @@ GEM
111
121
  webmock (1.8.0)
112
122
  addressable (>= 2.2.7)
113
123
  crack (>= 0.1.7)
114
- yajl-ruby (1.2.1)
115
- yard (0.7.5)
124
+ yajl-ruby (1.2.3)
125
+ yard (0.9.16)
116
126
 
117
127
  PLATFORMS
118
128
  java
@@ -121,7 +131,7 @@ PLATFORMS
121
131
  DEPENDENCIES
122
132
  RedCloth
123
133
  activerecord-jdbc-adapter
124
- appraisal (~> 1.0.2)
134
+ appraisal (~> 2.0)
125
135
  bundler (>= 1.8.0)
126
136
  fakefs
127
137
  garb (< 0.9.2)
@@ -133,7 +143,7 @@ DEPENDENCIES
133
143
  pry
134
144
  rack
135
145
  rake
136
- redis (>= 2.1)
146
+ redis (>= 3.2.1)
137
147
  redis-namespace (>= 1.1.0)
138
148
  rubystats (>= 0.2.5)
139
149
  sqlite3 (~> 1.3.10)
@@ -143,4 +153,4 @@ DEPENDENCIES
143
153
  yard
144
154
 
145
155
  BUNDLED WITH
146
- 1.11.2
156
+ 1.17.1
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Vanity
2
- [![Build
3
- Status](https://travis-ci.org/assaf/vanity.png?branch=master)](https://travis-ci.org/assaf/vanity)
2
+ [![Test Status](https://github.com/assaf/vanity/workflows/Test/badge.svg)](https://github.com/assaf/vanity/actions)
3
+
4
4
 
5
5
  Vanity is an A/B testing framework for Rails that is datastore agnostic.
6
6
 
@@ -61,7 +61,7 @@ Datastores should be configured using a `config/vanity.yml`.
61
61
  Add to your Gemfile:
62
62
 
63
63
  ```ruby
64
- gem "redis", ">= 2.1"
64
+ gem "redis", ">= 3.2"
65
65
  gem "redis-namespace", ">= 1.1.0"
66
66
  ```
67
67
 
@@ -139,10 +139,11 @@ test:
139
139
  active_record_adapter: default
140
140
  collecting: false
141
141
  production:
142
+ adapter: active_record
142
143
  active_record_adapter: postgresql
143
144
  <% uri = URI.parse(ENV['DATABASE_URL']) %>
144
145
  host: <%= uri.host %>
145
- username: <%= uri.username %>
146
+ username: <%= uri.user%>
146
147
  password: <%= uri.password %>
147
148
  port: <%= uri.port %>
148
149
  database: <%= uri.path.sub('/', '') %>
@@ -379,18 +380,15 @@ your view no participants will be recorded.
379
380
 
380
381
  Here's what's tested and known to work:
381
382
 
382
- Ruby 2.1
383
- Persistence: Redis, Mongo, ActiveRecord
384
- Rails: 3.2, 4.1, 4.2
385
- Ruby 2.2
386
- Persistence: Redis, Mongo, ActiveRecord
387
- Rails: 3.2, 4.1, 4.2, 5
388
383
  Ruby 2.3
389
- Persistence: Redis, Mongo, ActiveRecord
390
- Rails: 3.2, 4.1, 4.2, 5
391
- JRuby 1.9
392
- Persistence: Redis, Mongo, ActiveRecord
393
- Rails: 3.2, 4.1, 4.2
384
+ Persistence: Redis (redis-rb >= 3.2.1), Mongo, ActiveRecord
385
+ Rails: 4.1, 4.2, 5
386
+ Ruby 2.4
387
+ Persistence: Redis (redis-rb >= 3.2.1), Mongo, ActiveRecord
388
+ Rails: 4.1, 4.2, 5
389
+ JRuby 9.1
390
+ Persistence: Redis (redis-rb >= 3.2.1), Mongo, ActiveRecord
391
+ Rails: 4.1, 4.2
394
392
 
395
393
  ## Testing
396
394
 
@@ -427,7 +425,7 @@ Go ahead and target a pull request against the `gh-pages` branch.
427
425
  prepare the test suite to run against multiple versions of Rails
428
426
  * Fix, patch, enhance, document, improve, sprinkle pixie dust
429
427
  * Tests. Please. Run `appraisal rake test`, of if you can, `rake test:all`.
430
- (This project uses Travis CI where the test suite is run against multiple
428
+ (This project uses Github Actions where the test suite is run against multiple
431
429
  versions of ruby, rails and backends.)
432
430
  * Send a pull request on GitHub
433
431
 
@@ -3,15 +3,15 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gem "rack"
6
- gem "redis", ">= 2.1"
6
+ gem "redis", ">= 3.2.1"
7
7
  gem "redis-namespace", ">= 1.1.0"
8
8
  gem "mongo", "~> 2.1"
9
9
  gem "integration", "<= 0.1.0"
10
10
  gem "rubystats", ">= 0.2.5"
11
- gem "garb", "< 0.9.2", :require => false
12
- gem "mocha", "~> 1.0", :require => false
13
- gem "rails", "4.2.0"
14
- gem "fastthread", :git => "git://github.com/zoltankiss/fastthread.git", :platforms => :mri_20
11
+ gem "garb", "< 0.9.2", require: false
12
+ gem "mocha", "~> 1.0", require: false
13
+ gem "rails", "4.2.9"
14
+ gem "fastthread", platforms: :mri_20, git: "https://github.com/zoltankiss/fastthread.git"
15
15
  gem "passenger", "~>3.0"
16
16
 
17
17
  group :development do
@@ -30,4 +30,4 @@ platforms :jruby do
30
30
  gem "jdbc-sqlite3"
31
31
  end
32
32
 
33
- gemspec :development_group => :test, :path => "../"
33
+ gemspec development_group: :test, path: "../"