Skip to content

Commit 4d9dd0d

Browse files
authored
Merge branch 'master' into block-reload-config
2 parents 710c0b2 + 5e192a5 commit 4d9dd0d

154 files changed

Lines changed: 3600 additions & 111 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/tests.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
name: tests
22

3+
permissions:
4+
contents: read
5+
pull-requests: write
6+
37
on:
48
push:
59
branches: [ master ]

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
.idea
22
.bundle
3-
gemfiles/*.lock
4-
gemfiles/bin
3+
gemfiles
54
log
65
pkg
76
spec/app/**/db/*.sqlite*

Appraisals

Lines changed: 61 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,93 @@
1-
# Rails 5.x, 6.0 requires Ruby < 3
2-
if RUBY_ENGINE == 'ruby' && RUBY_VERSION <= '3.0'
1+
max_ruby_version = ->(version) {
2+
RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) <= Gem::Version.new(version)
3+
}
4+
5+
min_ruby_version = ->(version) {
6+
RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new(version)
7+
}
8+
9+
# Rails 5.x, 6.0 require Ruby < 3
10+
if max_ruby_version.call('3.0')
311
appraise 'rails-5.2' do
412
gem 'activerecord-jdbcsqlite3-adapter', '~> 52.5', platform: :jruby
513
gem 'bootsnap', '~> 1.4'
6-
gem 'rails', '5.2.8.1'
14+
gem 'rails', '~> 5.2.0'
715
gem 'rspec-rails', '~> 3.7'
816
gem 'sqlite3', '< 1.4.0', platform: :ruby
917
end
1018

1119
appraise 'rails-6.0' do
1220
gem 'activerecord-jdbcsqlite3-adapter', '~> 60.1', platform: :jruby
1321
gem 'bootsnap', '~> 1.4'
14-
gem 'rails', '6.0.6.1'
22+
gem 'rails', '~> 6.0.0'
1523
gem 'rspec-rails', '~> 3.7'
16-
gem 'sqlite3', '~> 1.4.0', platform: :ruby
24+
gem 'sqlite3', '~> 1', platform: :ruby
1725
end
1826
end
1927

20-
# Test rails 6.1 with psych >= 4
2128
appraise 'rails-6.1' do
2229
gem 'activerecord-jdbcsqlite3-adapter', '~> 61.1', platform: :jruby
2330
gem 'bootsnap', '>= 1.4.4'
24-
gem 'drb', '~> 2.2' if RUBY_VERSION >= '3.4'
25-
gem 'mutex_m', '~> 0.2.0' if RUBY_VERSION >= '3.4'
26-
gem 'rails', '6.1.7.10'
27-
gem 'rspec-rails', '~> 5.0'
28-
gem 'sqlite3', '~> 1.4', platform: :ruby
31+
gem 'drb', '~> 2.2' if min_ruby_version.call('3.4')
32+
gem 'mutex_m', '~> 0.2.0' if min_ruby_version.call('3.4')
2933
gem 'psych', '>= 4'
34+
gem 'rails', '~> 6.1.0'
35+
gem 'rspec-rails', '~> 5.0'
36+
gem 'sqlite3', '~> 1', platform: :ruby
3037
end
3138

32-
# Temporarily exclude Truffleruby and JRuby from testing in Rails 7.x until they fix the issues upstream.
33-
# See https://github.com/rubyconfig/config/pull/344#issuecomment-1766209753
34-
# if (RUBY_ENGINE == 'ruby' && RUBY_VERSION >= '2.7') || RUBY_ENGINE != 'ruby'
35-
if RUBY_ENGINE == 'ruby' && RUBY_VERSION >= '2.7'
39+
# Rails 7.0 require Ruby > 2.7
40+
if min_ruby_version.call('2.7') || RUBY_ENGINE != 'ruby'
3641
appraise 'rails-7.0' do
3742
gem 'activerecord-jdbcsqlite3-adapter', '~> 70.1', platform: :jruby
38-
gem 'sqlite3', '~> 1.6.4', platform: :ruby
3943
gem 'bootsnap', '>= 1.4.4'
40-
gem 'drb', '~> 2.2' if RUBY_VERSION >= '3.4'
41-
gem 'mutex_m', '~> 0.2.0' if RUBY_VERSION >= '3.4'
42-
gem 'rails', '7.0.8.7'
43-
gem 'rspec-rails', '~> 6.0.3'
44-
gem 'sprockets-rails', '~> 3.4.2'
44+
gem 'drb', '~> 2.2' if min_ruby_version.call('3.4')
45+
gem 'mutex_m', '~> 0.2.0' if min_ruby_version.call('3.4')
4546
gem 'psych', '>= 4'
47+
gem 'rails', '~> 7.0.0'
48+
gem 'rspec-rails', '~> 7.0'
49+
gem 'sprockets-rails', '~> 3.5.2'
50+
gem 'sqlite3', '~> 1', platform: :ruby
4651
end
52+
end
4753

54+
# Rails 7.1 require Ruby > 2.7
55+
if min_ruby_version.call('2.7')
4856
appraise 'rails-7.1' do
49-
gem 'activerecord-jdbcsqlite3-adapter', '~> 70.1', platform: :jruby
50-
gem 'sqlite3', '~> 1.6.6', platform: :ruby
57+
gem 'activerecord-jdbcsqlite3-adapter', '~> 71.0', platform: :jruby
58+
gem 'bootsnap', '>= 1.16.0'
59+
gem 'psych', '>= 4'
60+
gem 'rails', '~> 7.1.0'
61+
gem 'rspec-rails', '~> 7.0'
62+
gem 'sprockets-rails', '~> 3.5.2'
63+
gem 'sqlite3', '~> 1', platform: :ruby
64+
end
65+
66+
end
67+
68+
# Rails 7.2 requires Ruby > 3.1
69+
if min_ruby_version.call('3.1.0')
70+
appraise 'rails-7.2' do
71+
gem 'activerecord-jdbcsqlite3-adapter', '~> 71.0', platform: :jruby
72+
gem 'bootsnap', '>= 1.16.0'
73+
gem 'psych', '>= 4'
74+
gem 'rails', '~> 7.2.0'
75+
gem 'rspec-rails', '~> 7.0'
76+
gem 'sprockets-rails', '~> 3.5.2'
77+
gem 'sqlite3', '~> 1', platform: :ruby
78+
end
79+
end
80+
81+
# Rails 8.0 requires Ruby > 3.2
82+
if min_ruby_version.call('3.2.0')
83+
appraise 'rails-8.0' do
84+
gem 'activerecord-jdbcsqlite3-adapter', '~> 71.0', platform: :jruby
5185
gem 'bootsnap', '>= 1.16.0'
52-
gem 'rails', '7.1.5.1'
53-
gem 'rspec-rails', '~> 6.0.3'
54-
gem 'sprockets-rails', '~> 3.4.2'
86+
gem 'kamal', '~> 2.7.0'
87+
gem 'rails', '~> 8.0.0'
88+
gem 'rspec-rails', '~> 8.0'
5589
gem 'psych', '>= 4'
90+
gem 'sqlite3', '>= 2.1', platform: :ruby
5691
end
5792
end
5893

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 5.6.1
4+
5+
* fix(security): replace IO.read with File.read [#378](https://github.com/rubyconfig/config/pull/378)
6+
7+
## 5.6.0
8+
9+
* Added `extra_sources` in initializer ([#366](https://github.com/rubyconfig/config/pull/366))
10+
311
## 5.5.2
412

513
* Fix warning: ostruct was loaded from the standard library with Ruby 3.3.5 and 3.4+ ([#363](https://github.com/rubyconfig/config/pull/363))

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,22 @@ Example production environment config file:
162162
#{Rails.root}/config/environments/production.yml
163163
```
164164

165+
### Extra sources
166+
167+
You can load extra sources during initialization by setting the `extra_sources` configuration option.
168+
169+
```ruby
170+
Config.setup do |config|
171+
config.extra_sources = [
172+
'path/to/extra_source.yml', # String: loads extra_source.yml
173+
{ api_key: ENV['API_KEY'] }, # Hash: direct hash source
174+
MyCustomSource.new, # Object: custom source object that responds to `load`
175+
]
176+
end
177+
```
178+
179+
This will also overwrite the same config entries from the main file.
180+
165181
### Developer specific config files
166182

167183
If you want to have local settings, specific to your machine or development environment, you can use the following files, which are automatically `.gitignore` :

config.gemspec

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,14 @@ Gem::Specification.new do |s|
4040
# Default RSpec run will test against latest Rails app
4141
unless ENV['APPRAISAL_INITIALIZED'] || ENV['GITHUB_ACTIONS']
4242
gems_to_install = /gem "(.*?)", "(.*?)"(?!, platform: (?!\[:ruby\]))/
43-
File.read(Dir['gemfiles/rails*.gemfile'].sort.last).scan(gems_to_install) do |name, version|
44-
s.add_development_dependency name, version
43+
44+
if Dir.exist?('gemfiles')
45+
rails_gemfiles = Dir['gemfiles/rails*.gemfile'].sort
46+
unless rails_gemfiles.empty?
47+
File.read(rails_gemfiles.last).scan(gems_to_install) do |name, version|
48+
s.add_development_dependency name, version
49+
end
50+
end
4551
end
4652
end
4753

gemfiles/rails_5.2.gemfile

Lines changed: 0 additions & 11 deletions
This file was deleted.

gemfiles/rails_6.0.gemfile

Lines changed: 0 additions & 11 deletions
This file was deleted.

gemfiles/rails_6.1.gemfile

Lines changed: 0 additions & 14 deletions
This file was deleted.

gemfiles/rails_7.0.gemfile

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)