-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathAppraisals
30 lines (25 loc) · 1015 Bytes
/
Appraisals
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require 'net/http'
require 'json'
rails_versions = JSON.parse(Net::HTTP.get(URI('https://rubygems.org/api/v1/versions/rails.json')))
.group_by { |version| version['number'] }.keys.grep_v(/rc|racecar|alpha|beta|pre/)
%w[6.0 6.1 7.0 7.1 7.2 8.0].each do |rails_version|
appraise "rails_#{rails_version}" do
current_version = rails_versions
.select { |key| key.match(/\A#{rails_version}/) }
.max { |a, b| Gem::Version.new(a) <=> Gem::Version.new(b) }
gem 'activesupport', "~> #{current_version}"
gem 'activerecord', "~> #{current_version}"
if Gem::Version.new(rails_version) > Gem::Version.new(7.0)
gem 'sqlite3'
else
gem 'sqlite3', '< 2' # Rails 6.x and 7.0 require sqlite3 v1.x
end
# The following is likely necessary due to this issue (or something related):
# https://stackoverflow.com/a/79385484/1445184
if Gem::Version.new(rails_version) < Gem::Version.new(7.1)
gem 'base64'
gem 'bigdecimal'
gem 'mutex_m'
end
end
end