vanity 2.2.9 → 3.0.2

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