config 5.5.2 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +16 -0
- data/config.gemspec +9 -3
- data/lib/config/dry_validation_requirements.rb +1 -3
- data/lib/config/version.rb +1 -1
- data/lib/config.rb +6 -2
- data/lib/generators/config/templates/config.rb +9 -0
- metadata +46 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba3d20a75f8fe4b14d5008d1ea8dd9f6b01799ed09e82f30afd76700a2cbd6ff
|
4
|
+
data.tar.gz: 3db4af3557979eafa3d95d20aeea1d58aa33a54a4070ca8e3888594d58b16263
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07f599553b96a80beee9931af461695444f1e48210984cb5da2da56c8bf9f61065f11f4e0af6af8b03fe136169535cb2dcfc7556a61e6aefbe4699fcf8090afa
|
7
|
+
data.tar.gz: 1d1337a4c3121d3481edbb3066d9468262c85be7f102b7af0a845b15ea3b550d13876f7382ae4e55cce97d6386f596a40d1e2bf675d91ab5b5ea71799f5e6b46
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 5.6.0
|
4
|
+
|
5
|
+
* Added `extra_sources` in initializer ([#366](https://github.com/rubyconfig/config/pull/366))
|
6
|
+
|
3
7
|
## 5.5.2
|
4
8
|
|
5
9
|
* 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))
|
data/README.md
CHANGED
@@ -154,6 +154,22 @@ Example production environment config file:
|
|
154
154
|
#{Rails.root}/config/environments/production.yml
|
155
155
|
```
|
156
156
|
|
157
|
+
### Extra sources
|
158
|
+
|
159
|
+
You can load extra sources during initialization by setting the `extra_sources` configuration option.
|
160
|
+
|
161
|
+
```ruby
|
162
|
+
Config.setup do |config|
|
163
|
+
config.extra_sources = [
|
164
|
+
'path/to/extra_source.yml', # String: loads extra_source.yml
|
165
|
+
{ api_key: ENV['API_KEY'] }, # Hash: direct hash source
|
166
|
+
MyCustomSource.new, # Object: custom source object that responds to `load`
|
167
|
+
]
|
168
|
+
end
|
169
|
+
```
|
170
|
+
|
171
|
+
This will also overwrite the same config entries from the main file.
|
172
|
+
|
157
173
|
### Developer specific config files
|
158
174
|
|
159
175
|
If you want to have local settings, specific to your machine or development environment, you can use the following files, which are automatically `.gitignore` :
|
data/config.gemspec
CHANGED
@@ -30,18 +30,24 @@ Gem::Specification.new do |s|
|
|
30
30
|
s.add_dependency 'deep_merge', '~> 1.2', '>= 1.2.1'
|
31
31
|
s.add_dependency 'ostruct'
|
32
32
|
|
33
|
-
s.add_development_dependency 'dry-validation', *Config::DryValidationRequirements::VERSIONS
|
34
33
|
s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
|
35
34
|
|
36
35
|
# Testing
|
37
36
|
s.add_development_dependency 'appraisal', '~> 2.5', '>= 2.5.0'
|
37
|
+
s.add_development_dependency 'dry-validation', *Config::DryValidationRequirements::VERSIONS
|
38
38
|
s.add_development_dependency 'rspec', '~> 3.9', '>= 3.9.0'
|
39
39
|
|
40
40
|
# Default RSpec run will test against latest Rails app
|
41
41
|
unless ENV['APPRAISAL_INITIALIZED'] || ENV['GITHUB_ACTIONS']
|
42
42
|
gems_to_install = /gem "(.*?)", "(.*?)"(?!, platform: (?!\[:ruby\]))/
|
43
|
-
|
44
|
-
|
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
|
45
51
|
end
|
46
52
|
end
|
47
53
|
|
@@ -14,9 +14,7 @@ module Config
|
|
14
14
|
raise LoadError
|
15
15
|
end
|
16
16
|
rescue LoadError
|
17
|
-
raise ::Config::Error,
|
18
|
-
' matching requirements' \
|
19
|
-
" (#{VERSIONS.map(&:inspect) * ','})"
|
17
|
+
raise ::Config::Error, "Could not find a dry-validation version matching requirements (#{VERSIONS.map(&:inspect) * ','})"
|
20
18
|
end
|
21
19
|
|
22
20
|
require 'dry/validation'
|
data/lib/config/version.rb
CHANGED
data/lib/config.rb
CHANGED
@@ -29,7 +29,8 @@ module Config
|
|
29
29
|
merge_hash_arrays: false,
|
30
30
|
validation_contract: nil,
|
31
31
|
evaluate_erb_in_yaml: true,
|
32
|
-
environment: nil
|
32
|
+
environment: nil,
|
33
|
+
extra_sources: []
|
33
34
|
)
|
34
35
|
|
35
36
|
def self.setup
|
@@ -57,7 +58,10 @@ module Config
|
|
57
58
|
def self.load_and_set_settings(*sources)
|
58
59
|
name = Config.const_name
|
59
60
|
Object.send(:remove_const, name) if Object.const_defined?(name)
|
60
|
-
|
61
|
+
|
62
|
+
# Include extra sources in the loading process
|
63
|
+
all_sources = [sources, Config.extra_sources].flatten.compact
|
64
|
+
Object.const_set(name, Config.load_files(*all_sources))
|
61
65
|
end
|
62
66
|
|
63
67
|
def self.setting_files(config_root, env)
|
@@ -65,4 +65,13 @@ Config.setup do |config|
|
|
65
65
|
#
|
66
66
|
# config.file_name = 'settings'
|
67
67
|
# config.dir_name = 'settings'
|
68
|
+
|
69
|
+
# Load extra sources from a path. These can be file paths (strings),
|
70
|
+
# hashes, or custom source objects that respond to 'load'
|
71
|
+
#
|
72
|
+
# config.extra_sources = [
|
73
|
+
# 'path/to/extra_source.yml', # String: loads extra_source.yml
|
74
|
+
# { api_key: ENV['API_KEY'] }, # Hash: direct hash source
|
75
|
+
# MyCustomSource.new, # Custom source object
|
76
|
+
# ]
|
68
77
|
end
|
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Kuczynski
|
8
8
|
- Fred Wu
|
9
9
|
- Jacques Crocker
|
10
|
-
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2025-07-11 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: deep_merge
|
@@ -47,65 +46,65 @@ dependencies:
|
|
47
46
|
- !ruby/object:Gem::Version
|
48
47
|
version: '0'
|
49
48
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
49
|
+
name: rake
|
51
50
|
requirement: !ruby/object:Gem::Requirement
|
52
51
|
requirements:
|
53
52
|
- - "~>"
|
54
53
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
54
|
+
version: '12.0'
|
56
55
|
- - ">="
|
57
56
|
- !ruby/object:Gem::Version
|
58
|
-
version:
|
57
|
+
version: 12.0.0
|
59
58
|
type: :development
|
60
59
|
prerelease: false
|
61
60
|
version_requirements: !ruby/object:Gem::Requirement
|
62
61
|
requirements:
|
63
62
|
- - "~>"
|
64
63
|
- !ruby/object:Gem::Version
|
65
|
-
version: '
|
64
|
+
version: '12.0'
|
66
65
|
- - ">="
|
67
66
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
67
|
+
version: 12.0.0
|
69
68
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
69
|
+
name: appraisal
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
72
71
|
requirements:
|
73
72
|
- - "~>"
|
74
73
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
74
|
+
version: '2.5'
|
76
75
|
- - ">="
|
77
76
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
77
|
+
version: 2.5.0
|
79
78
|
type: :development
|
80
79
|
prerelease: false
|
81
80
|
version_requirements: !ruby/object:Gem::Requirement
|
82
81
|
requirements:
|
83
82
|
- - "~>"
|
84
83
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
84
|
+
version: '2.5'
|
86
85
|
- - ">="
|
87
86
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
87
|
+
version: 2.5.0
|
89
88
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
89
|
+
name: dry-validation
|
91
90
|
requirement: !ruby/object:Gem::Requirement
|
92
91
|
requirements:
|
93
92
|
- - "~>"
|
94
93
|
- !ruby/object:Gem::Version
|
95
|
-
version: '
|
94
|
+
version: '1.0'
|
96
95
|
- - ">="
|
97
96
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
97
|
+
version: 1.0.0
|
99
98
|
type: :development
|
100
99
|
prerelease: false
|
101
100
|
version_requirements: !ruby/object:Gem::Requirement
|
102
101
|
requirements:
|
103
102
|
- - "~>"
|
104
103
|
- !ruby/object:Gem::Version
|
105
|
-
version: '
|
104
|
+
version: '1.0'
|
106
105
|
- - ">="
|
107
106
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
107
|
+
version: 1.0.0
|
109
108
|
- !ruby/object:Gem::Dependency
|
110
109
|
name: rspec
|
111
110
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,47 +140,47 @@ dependencies:
|
|
141
140
|
- !ruby/object:Gem::Version
|
142
141
|
version: 1.16.0
|
143
142
|
- !ruby/object:Gem::Dependency
|
144
|
-
name:
|
143
|
+
name: kamal
|
145
144
|
requirement: !ruby/object:Gem::Requirement
|
146
145
|
requirements:
|
147
|
-
- -
|
146
|
+
- - "~>"
|
148
147
|
- !ruby/object:Gem::Version
|
149
|
-
version: 7.
|
148
|
+
version: 2.7.0
|
150
149
|
type: :development
|
151
150
|
prerelease: false
|
152
151
|
version_requirements: !ruby/object:Gem::Requirement
|
153
152
|
requirements:
|
154
|
-
- -
|
153
|
+
- - "~>"
|
155
154
|
- !ruby/object:Gem::Version
|
156
|
-
version: 7.
|
155
|
+
version: 2.7.0
|
157
156
|
- !ruby/object:Gem::Dependency
|
158
|
-
name:
|
157
|
+
name: rails
|
159
158
|
requirement: !ruby/object:Gem::Requirement
|
160
159
|
requirements:
|
161
|
-
- -
|
160
|
+
- - '='
|
162
161
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
162
|
+
version: 8.0.2
|
164
163
|
type: :development
|
165
164
|
prerelease: false
|
166
165
|
version_requirements: !ruby/object:Gem::Requirement
|
167
166
|
requirements:
|
168
|
-
- -
|
167
|
+
- - '='
|
169
168
|
- !ruby/object:Gem::Version
|
170
|
-
version:
|
169
|
+
version: 8.0.2
|
171
170
|
- !ruby/object:Gem::Dependency
|
172
|
-
name:
|
171
|
+
name: rspec-rails
|
173
172
|
requirement: !ruby/object:Gem::Requirement
|
174
173
|
requirements:
|
175
174
|
- - "~>"
|
176
175
|
- !ruby/object:Gem::Version
|
177
|
-
version:
|
176
|
+
version: 8.0.1
|
178
177
|
type: :development
|
179
178
|
prerelease: false
|
180
179
|
version_requirements: !ruby/object:Gem::Requirement
|
181
180
|
requirements:
|
182
181
|
- - "~>"
|
183
182
|
- !ruby/object:Gem::Version
|
184
|
-
version:
|
183
|
+
version: 8.0.1
|
185
184
|
- !ruby/object:Gem::Dependency
|
186
185
|
name: psych
|
187
186
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,6 +195,20 @@ dependencies:
|
|
196
195
|
- - ">="
|
197
196
|
- !ruby/object:Gem::Version
|
198
197
|
version: '4'
|
198
|
+
- !ruby/object:Gem::Dependency
|
199
|
+
name: sprockets-rails
|
200
|
+
requirement: !ruby/object:Gem::Requirement
|
201
|
+
requirements:
|
202
|
+
- - "~>"
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: 3.5.2
|
205
|
+
type: :development
|
206
|
+
prerelease: false
|
207
|
+
version_requirements: !ruby/object:Gem::Requirement
|
208
|
+
requirements:
|
209
|
+
- - "~>"
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
version: 3.5.2
|
199
212
|
- !ruby/object:Gem::Dependency
|
200
213
|
name: mdl
|
201
214
|
requirement: !ruby/object:Gem::Requirement
|
@@ -239,10 +252,10 @@ email:
|
|
239
252
|
executables: []
|
240
253
|
extensions: []
|
241
254
|
extra_rdoc_files:
|
242
|
-
- README.md
|
243
255
|
- CHANGELOG.md
|
244
256
|
- CONTRIBUTING.md
|
245
257
|
- LICENSE.md
|
258
|
+
- README.md
|
246
259
|
files:
|
247
260
|
- CHANGELOG.md
|
248
261
|
- CONTRIBUTING.md
|
@@ -281,7 +294,6 @@ metadata:
|
|
281
294
|
funding_uri: https://opencollective.com/rubyconfig/donate
|
282
295
|
source_code_uri: https://github.com/rubyconfig/config
|
283
296
|
bug_tracker_uri: https://github.com/rubyconfig/config/issues
|
284
|
-
post_install_message:
|
285
297
|
rdoc_options:
|
286
298
|
- "--charset=UTF-8"
|
287
299
|
require_paths:
|
@@ -297,8 +309,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
309
|
- !ruby/object:Gem::Version
|
298
310
|
version: '0'
|
299
311
|
requirements: []
|
300
|
-
rubygems_version: 3.
|
301
|
-
signing_key:
|
312
|
+
rubygems_version: 3.6.9
|
302
313
|
specification_version: 4
|
303
314
|
summary: Effortless multi-environment settings in Rails, Sinatra, Padrino and others
|
304
315
|
test_files: []
|