Skip to content

Commit be2ad4f

Browse files
committed
Improve appraisal config
1 parent 911a586 commit be2ad4f

File tree

6 files changed

+104
-37
lines changed

6 files changed

+104
-37
lines changed

Appraisals

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,27 @@
11
# frozen_string_literal: true
22

3-
RAILS_VERSIONS = {
4-
'5.2.4' => {
5-
'activerecord-oracle_enhanced-adapter' => '~> 5.2.0',
6-
'sqlite3' => '~> 1.3.0',
7-
'mysql2' => '',
8-
'ruby-oci8' => '',
9-
},
10-
'6.0.3' => {
11-
'activerecord-oracle_enhanced-adapter' => '~> 6.0.0',
12-
'sqlite3' => '~> 1.4.0',
13-
'mysql2' => '',
14-
'ruby-oci8' => '',
15-
},
16-
'6.1.0' => {
17-
'activerecord-oracle_enhanced-adapter' => '~> 6.1.0',
18-
'sqlite3' => '~> 1.4.0',
19-
'mysql2' => '',
20-
'ruby-oci8' => '',
21-
},
22-
}.freeze
3+
require 'yaml'
234

24-
RAILS_VERSIONS.each do |version, gems|
5+
rails_versions = YAML.load(File.read('appraisal.yml'))
6+
7+
rails_versions.each do |version, gems|
258
appraise "rails_#{version}" do
269
gem 'rails', version
27-
gems.each do |name, gem_version|
28-
if gem_version.empty?
29-
gem name
10+
gems.each do |name, opts|
11+
if opts['install_if']
12+
install_if opts['install_if'] do
13+
if opts['version'].empty?
14+
gem name
15+
else
16+
gem name, opts['version']
17+
end
18+
end
3019
else
31-
gem name, gem_version
20+
if opts['version'].empty?
21+
gem name
22+
else
23+
gem name, opts['version']
24+
end
3225
end
3326
end
3427
end

Gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@
33
source 'https://rubygems.org'
44

55
gemspec
6+
7+
gem 'appraisal', git: 'https://github.com/thoughtbot/appraisal.git'

appraisal.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
5.2.4:
3+
sqlite3:
4+
version: ~> 1.3.0
5+
install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }'
6+
mysql2:
7+
version: ''
8+
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
9+
activerecord-oracle_enhanced-adapter:
10+
version: ~> 5.2.0
11+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
12+
ruby-oci8:
13+
version: ''
14+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
15+
16+
6.0.3:
17+
sqlite3:
18+
version: ~> 1.4.0
19+
install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }'
20+
mysql2:
21+
version: ''
22+
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
23+
activerecord-oracle_enhanced-adapter:
24+
version: ~> 6.0.0
25+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
26+
ruby-oci8:
27+
version: ''
28+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
29+
30+
6.1.0:
31+
sqlite3:
32+
version: ~> 1.4.0
33+
install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }'
34+
mysql2:
35+
version: ''
36+
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
37+
activerecord-oracle_enhanced-adapter:
38+
version: ~> 6.1.0
39+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
40+
ruby-oci8:
41+
version: ''
42+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'

gemfiles/rails_5.2.4.gemfile

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,20 @@
22

33
source "https://rubygems.org"
44

5+
gem "appraisal", git: "https://github.com/n-rodriguez/appraisal.git", branch: "wip/install_if"
56
gem "rails", "5.2.4"
6-
gem "activerecord-oracle_enhanced-adapter", "~> 5.2.0"
7-
gem "sqlite3", "~> 1.3.0"
8-
gem "mysql2"
9-
gem "ruby-oci8" if ENV["DB_ADAPTER"] == "oracle_enhanced"
7+
8+
install_if -> { ENV["DB_ADAPTER"] == "sqlite3" } do
9+
gem "sqlite3", "~> 1.3.0"
10+
end
11+
12+
install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
13+
gem "mysql2"
14+
end
15+
16+
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
17+
gem "activerecord-oracle_enhanced-adapter", "~> 5.2.0"
18+
gem "ruby-oci8"
19+
end
1020

1121
gemspec path: "../"

gemfiles/rails_6.0.3.gemfile

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,20 @@
22

33
source "https://rubygems.org"
44

5+
gem "appraisal", git: "https://github.com/n-rodriguez/appraisal.git", branch: "wip/install_if"
56
gem "rails", "6.0.3"
6-
gem "activerecord-oracle_enhanced-adapter", "~> 6.0.0"
7-
gem "sqlite3", "~> 1.4.0"
8-
gem "mysql2"
9-
gem "ruby-oci8" if ENV["DB_ADAPTER"] == "oracle_enhanced"
7+
8+
install_if -> { ENV["DB_ADAPTER"] == "sqlite3" } do
9+
gem "sqlite3", "~> 1.4.0"
10+
end
11+
12+
install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
13+
gem "mysql2"
14+
end
15+
16+
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
17+
gem "activerecord-oracle_enhanced-adapter", "~> 6.0.0"
18+
gem "ruby-oci8"
19+
end
1020

1121
gemspec path: "../"

gemfiles/rails_6.1.0.gemfile

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,20 @@
22

33
source "https://rubygems.org"
44

5+
gem "appraisal", git: "https://github.com/n-rodriguez/appraisal.git", branch: "wip/install_if"
56
gem "rails", "6.1.0"
6-
gem "activerecord-oracle_enhanced-adapter", "~> 6.1.0"
7-
gem "sqlite3", "~> 1.4.0"
8-
gem "mysql2"
9-
gem "ruby-oci8" if ENV["DB_ADAPTER"] == "oracle_enhanced"
7+
8+
install_if -> { ENV["DB_ADAPTER"] == "sqlite3" } do
9+
gem "sqlite3", "~> 1.4.0"
10+
end
11+
12+
install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
13+
gem "mysql2"
14+
end
15+
16+
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
17+
gem "activerecord-oracle_enhanced-adapter", "~> 6.1.0"
18+
gem "ruby-oci8"
19+
end
1020

1121
gemspec path: "../"

0 commit comments

Comments
 (0)