Skip to content

Commit aea8d7d

Browse files
Mike VastolaMike Vastola
authored andcommitted
Add appraisal gem. Let's see what breaks. :-\
Also added script to generate list of excludes in `.travis.yml`. (Since we're supporting so many versions right now, there are a ton)
1 parent ccf18c2 commit aea8d7d

23 files changed

+515
-105
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ pkg
55
Gemfile.lock
66
coverage
77
/.idea
8+
/gemfiles/*.gemfile.lock

.travis.base.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
os: linux
2+
dist: xenial
3+
language: ruby
4+
cache: bundler
5+
script: "bundle exec rake test"
6+
rvm:
7+
- 2.0
8+
- 2.1
9+
- 2.2
10+
- 2.3
11+
- 2.4
12+
- 2.5
13+
- 2.6
14+
- 2.7
15+
- 3.0
16+
- head
17+
- rbx
18+
gemfile:
19+
- gemfiles/rails_3.0.gemfile
20+
- gemfiles/rails_3.1.gemfile
21+
- gemfiles/rails_3.2.gemfile
22+
- gemfiles/rails_4.0.gemfile
23+
- gemfiles/rails_4.1.gemfile
24+
- gemfiles/rails_4.2.gemfile
25+
- gemfiles/rails_5.0.gemfile
26+
- gemfiles/rails_5.1.gemfile
27+
- gemfiles/rails_5.2.gemfile
28+
- gemfiles/rails_6.0.gemfile
29+
- gemfiles/rails_6.1.gemfile
30+
- gemfiles/rails_7_edge.gemfile
31+
- gemfiles/datamapper.gemfile
32+
- gemfiles/sequel.gemfile
33+
jobs:
34+
allow_failures:
35+
- rvm: head
36+
- gemfile: gemfiles/rails_7_edge.gemfile
37+
- rvm: rbx
38+
fast_finish: true

.travis.yml

Lines changed: 143 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,148 @@
1-
sudo: false
1+
---
2+
os: linux
3+
dist: xenial
24
language: ruby
35
cache: bundler
6+
script: bundle exec rake test
47
rvm:
5-
- 2.0
6-
- 2.1
7-
- 2.2
8-
- 2.3
9-
- 2.4
10-
- 2.5
11-
- 2.6
12-
- 2.7
13-
- 3.0
14-
- rbx
15-
env:
16-
- ACTIVERECORD=3.0.x
17-
- ACTIVERECORD=3.1.x
18-
- ACTIVERECORD=3.2.x
19-
- ACTIVERECORD=4.0.x
20-
- ACTIVERECORD=4.1.x
21-
- ACTIVERECORD=4.2.x
22-
- ACTIVERECORD=5.0.x
23-
- ACTIVERECORD=5.1.x
24-
- ACTIVERECORD=5.2.x
25-
- ACTIVERECORD=6.0.x
26-
- ACTIVERECORD=6.1.x
27-
- ACTIVERECORD=6.2.x
28-
matrix:
29-
exclude:
30-
- rvm: 2.0
31-
env: ACTIVERECORD=5.0.x
32-
- rvm: 2.0
33-
env: ACTIVERECORD=5.1.x
34-
- rvm: 2.0
35-
env: ACTIVERECORD=5.2.x
36-
- rvm: 2.0
37-
env: ACTIVERECORD=6.0.x
38-
- rvm: 2.0
39-
env: ACTIVERECORD=6.1.x
40-
- rvm: 2.0
41-
env: ACTIVERECORD=6.2.x
42-
- rvm: 2.1
43-
env: ACTIVERECORD=5.0.x
44-
- rvm: 2.1
45-
env: ACTIVERECORD=5.1.x
46-
- rvm: 2.0
47-
env: ACTIVERECORD=5.2.x
48-
- rvm: 2.1
49-
env: ACTIVERECORD=6.0.x
50-
- rvm: 2.1
51-
env: ACTIVERECORD=6.1.x
52-
- rvm: 2.1
53-
env: ACTIVERECORD=6.2.x
54-
- rvm: 2.1
55-
env: ACTIVERECORD=6.0.x
56-
- rvm: 2.2
57-
env: ACTIVERECORD=6.1.x
58-
- rvm: 2.2
59-
env: ACTIVERECORD=6.2.x
60-
- rvm: 2.2
61-
env: ACTIVERECORD=6.0.x
62-
- rvm: 2.3
63-
env: ACTIVERECORD=6.1.x
64-
- rvm: 2.3
65-
env: ACTIVERECORD=6.2.x
66-
- rvm: 2.3
67-
env: ACTIVERECORD=3.0.x
68-
- rvm: 2.4
69-
env: ACTIVERECORD=3.1.x
70-
- rvm: 2.4
71-
env: ACTIVERECORD=3.2.x
72-
- rvm: 2.4
73-
env: ACTIVERECORD=4.0.x
74-
- rvm: 2.4
75-
env: ACTIVERECORD=4.1.x
76-
- rvm: 2.4
77-
env: ACTIVERECORD=6.0.x
78-
- rvm: 2.4
79-
env: ACTIVERECORD=6.1.x
80-
- rvm: 2.4
81-
env: ACTIVERECORD=6.2.x
82-
- rvm: 2.5
83-
env: ACTIVERECORD=3.0.x
84-
- rvm: 2.5
85-
env: ACTIVERECORD=3.1.x
86-
- rvm: 2.5
87-
env: ACTIVERECORD=3.2.x
88-
- rvm: 2.5
89-
env: ACTIVERECORD=4.0.x
90-
- rvm: 2.5
91-
env: ACTIVERECORD=4.1.x
92-
- rvm: rbx
93-
env: ACTIVERECORD=5.0.x
94-
- rvm: rbx
95-
env: ACTIVERECORD=5.1.x
96-
- rvm: rbx
97-
env: ACTIVERECORD=5.2.x
98-
- rvm: rbx
99-
env: ACTIVERECORD=6.0.x
100-
- rvm: rbx
101-
env: ACTIVERECORD=6.1.x
102-
- rvm: rbx
103-
env: ACTIVERECORD=6.2.x
8+
- 2.0
9+
- 2.1
10+
- 2.2
11+
- 2.3
12+
- 2.4
13+
- 2.5
14+
- 2.6
15+
- 2.7
16+
- 3.0
17+
- head
18+
- rbx
19+
gemfile:
20+
- gemfiles/rails_3.0.gemfile
21+
- gemfiles/rails_3.1.gemfile
22+
- gemfiles/rails_3.2.gemfile
23+
- gemfiles/rails_4.0.gemfile
24+
- gemfiles/rails_4.1.gemfile
25+
- gemfiles/rails_4.2.gemfile
26+
- gemfiles/rails_5.0.gemfile
27+
- gemfiles/rails_5.1.gemfile
28+
- gemfiles/rails_5.2.gemfile
29+
- gemfiles/rails_6.0.gemfile
30+
- gemfiles/rails_6.1.gemfile
31+
- gemfiles/rails_7_edge.gemfile
32+
- gemfiles/datamapper.gemfile
33+
- gemfiles/sequel.gemfile
34+
jobs:
10435
allow_failures:
105-
- rvm: rbx
36+
- rvm: head
37+
- gemfile: gemfiles/rails_7_edge.gemfile
38+
- rvm: rbx
39+
- gemfile: gemfiles/rails_4.2.gemfile
40+
rvm: '2.0'
41+
- gemfile: gemfiles/rails_4.2.gemfile
42+
rvm: '2.1'
43+
- gemfile: gemfiles/rails_4.2.gemfile
44+
rvm: '2.2'
45+
- gemfile: gemfiles/rails_4.2.gemfile
46+
rvm: '2.3'
47+
- gemfile: gemfiles/rails_4.2.gemfile
48+
rvm: '2.4'
10649
fast_finish: true
107-
addons:
108-
code_climate:
109-
repo_token: a90435ed4954dd6e9f3697a20c5bc3754f67d94703f870e8fc7b00f69f5b2d06
50+
exclude:
51+
- gemfile: gemfiles/rails_3.0.gemfile
52+
rvm: '2.4'
53+
- gemfile: gemfiles/rails_3.0.gemfile
54+
rvm: '2.5'
55+
- gemfile: gemfiles/rails_3.0.gemfile
56+
rvm: '2.6'
57+
- gemfile: gemfiles/rails_3.0.gemfile
58+
rvm: '2.7'
59+
- gemfile: gemfiles/rails_3.0.gemfile
60+
rvm: '3.0'
61+
- gemfile: gemfiles/rails_3.1.gemfile
62+
rvm: '2.4'
63+
- gemfile: gemfiles/rails_3.1.gemfile
64+
rvm: '2.5'
65+
- gemfile: gemfiles/rails_3.1.gemfile
66+
rvm: '2.6'
67+
- gemfile: gemfiles/rails_3.1.gemfile
68+
rvm: '2.7'
69+
- gemfile: gemfiles/rails_3.1.gemfile
70+
rvm: '3.0'
71+
- gemfile: gemfiles/rails_3.2.gemfile
72+
rvm: '2.4'
73+
- gemfile: gemfiles/rails_3.2.gemfile
74+
rvm: '2.5'
75+
- gemfile: gemfiles/rails_3.2.gemfile
76+
rvm: '2.6'
77+
- gemfile: gemfiles/rails_3.2.gemfile
78+
rvm: '2.7'
79+
- gemfile: gemfiles/rails_3.2.gemfile
80+
rvm: '3.0'
81+
- gemfile: gemfiles/rails_4.0.gemfile
82+
rvm: '2.4'
83+
- gemfile: gemfiles/rails_4.0.gemfile
84+
rvm: '2.5'
85+
- gemfile: gemfiles/rails_4.0.gemfile
86+
rvm: '2.6'
87+
- gemfile: gemfiles/rails_4.0.gemfile
88+
rvm: '2.7'
89+
- gemfile: gemfiles/rails_4.0.gemfile
90+
rvm: '3.0'
91+
- gemfile: gemfiles/rails_4.1.gemfile
92+
rvm: '2.4'
93+
- gemfile: gemfiles/rails_4.1.gemfile
94+
rvm: '2.5'
95+
- gemfile: gemfiles/rails_4.1.gemfile
96+
rvm: '2.6'
97+
- gemfile: gemfiles/rails_4.1.gemfile
98+
rvm: '2.7'
99+
- gemfile: gemfiles/rails_4.1.gemfile
100+
rvm: '3.0'
101+
- gemfile: gemfiles/rails_5.0.gemfile
102+
rvm: '2.0'
103+
- gemfile: gemfiles/rails_5.0.gemfile
104+
rvm: '2.1'
105+
- gemfile: gemfiles/rails_5.1.gemfile
106+
rvm: '2.0'
107+
- gemfile: gemfiles/rails_5.1.gemfile
108+
rvm: '2.1'
109+
- gemfile: gemfiles/rails_5.2.gemfile
110+
rvm: '2.0'
111+
- gemfile: gemfiles/rails_5.2.gemfile
112+
rvm: '2.1'
113+
- gemfile: gemfiles/rails_5.2.gemfile
114+
rvm: '2.2'
115+
- gemfile: gemfiles/rails_5.2.gemfile
116+
rvm: '2.3'
117+
- gemfile: gemfiles/rails_5.2.gemfile
118+
rvm: '2.4'
119+
- gemfile: gemfiles/rails_6.0.gemfile
120+
rvm: '2.0'
121+
- gemfile: gemfiles/rails_6.0.gemfile
122+
rvm: '2.1'
123+
- gemfile: gemfiles/rails_6.0.gemfile
124+
rvm: '2.2'
125+
- gemfile: gemfiles/rails_6.0.gemfile
126+
rvm: '2.3'
127+
- gemfile: gemfiles/rails_6.0.gemfile
128+
rvm: '2.4'
129+
- gemfile: gemfiles/rails_6.1.gemfile
130+
rvm: '2.0'
131+
- gemfile: gemfiles/rails_6.1.gemfile
132+
rvm: '2.1'
133+
- gemfile: gemfiles/rails_6.1.gemfile
134+
rvm: '2.2'
135+
- gemfile: gemfiles/rails_6.1.gemfile
136+
rvm: '2.3'
137+
- gemfile: gemfiles/rails_6.1.gemfile
138+
rvm: '2.4'
139+
- gemfile: gemfiles/rails_7_edge.gemfile
140+
rvm: '2.0'
141+
- gemfile: gemfiles/rails_7_edge.gemfile
142+
rvm: '2.1'
143+
- gemfile: gemfiles/rails_7_edge.gemfile
144+
rvm: '2.2'
145+
- gemfile: gemfiles/rails_7_edge.gemfile
146+
rvm: '2.3'
147+
- gemfile: gemfiles/rails_7_edge.gemfile
148+
rvm: '2.4'

Appraisals

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
SUPPORTED_RAILS_VERSIONS = %w[3.0 3.1 3.2 4.0 4.1 4.2 5.0 5.1 5.2 6.0 6.1]
3+
4+
SUPPORTED_RAILS_VERSIONS.each do |rails_ver|
5+
appraise "rails-#{rails_ver}" do
6+
gem 'activerecord', "~> #{rails_ver}.x"
7+
gem 'actionpack', "~> #{rails_ver}.x"
8+
9+
install_if -> { %w[3.0 3.1 3.2].include?(rails_ver) } do
10+
gem 'activerecord-sqlite3-adapter'
11+
end
12+
13+
end
14+
end
15+
16+
appraise 'rails-7-edge' do
17+
gem 'activerecord', git: 'https://github.com/rails/rails', branch: 'main'
18+
gem 'actionpack', git: 'https://github.com/rails/rails', branch: 'main'
19+
end
20+
21+
appraise 'datamapper' do
22+
gem 'datamapper'
23+
gem 'dm-sqlite-adapter'
24+
end
25+
26+
appraise 'sequel' do
27+
gem 'sequel'
28+
end
29+
30+
31+

Gemfile

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
11
source 'https://rubygems.org'
22

33
gemspec
4+
5+
gem 'appraisal'
6+
gem 'sqlite3'
7+
gem 'encryptor', '~> 3.0.0'
8+
gem 'rake'
9+
10+
gem 'minitest'
11+
gem 'simplecov'
12+
gem 'simplecov-rcov'
13+
gem 'codeclimate-test-reporter', '<= 0.6.0'
14+
15+
16+
if RUBY_VERSION < '2.1.0'
17+
gem 'nokogiri'
18+
gem 'public_suffix', '< 3.0.0'
19+
end
20+
21+
platforms :jruby do
22+
gem 'activerecord-jdbcsqlite3-adapter'
23+
gem 'jdbc-sqlite3', '< 3.8.7' # 3.8.7 is nice and broke
24+
end
25+
26+
group :development do
27+
gem 'wwtd', require: false
28+
gem 'rubocop', require: false
29+
end

Rakefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
require 'rake/testtask'
44
require 'rdoc/task'
55
require "bundler/gem_tasks"
6+
require 'wwtd/tasks'
67

78
desc 'Test the attr_encrypted gem.'
89
Rake::TestTask.new(:test) do |t|
@@ -22,4 +23,7 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
2223
end
2324

2425
desc 'Default: run unit tests.'
25-
task :default => :test
26+
if !ENV["APPRAISAL_INITIALIZED"] && !ENV["TRAVIS"]
27+
task :default => :appraisal
28+
end
29+
#task :default => :test

attr_encrypted.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
3636
s.required_ruby_version = '>= 2.0.0'
3737

3838
s.add_dependency 'encryptor', '~> 3.0.0'
39+
s.add_development_dependency 'appraisal'
3940
s.add_development_dependency 'activerecord', '>= 2.0.0'
4041
s.add_development_dependency 'actionpack', '>= 2.0.0'
4142
s.add_development_dependency 'datamapper'

gemfiles/datamapper.gemfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# This file was generated by Appraisal
2+
3+
source "https://rubygems.org"
4+
5+
gem "datamapper"
6+
gem "dm-sqlite-adapter"
7+
8+
group :development do
9+
gem "wwtd", require: false
10+
gem "rubocop", require: false
11+
end
12+
13+
gemspec path: "../"

0 commit comments

Comments
 (0)