config 5.5.1 → 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 +8 -0
- data/README.md +17 -1
- data/config.gemspec +10 -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 +55 -30
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,13 @@
|
|
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
|
+
|
7
|
+
## 5.5.2
|
8
|
+
|
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))
|
10
|
+
|
3
11
|
## 5.5.1
|
4
12
|
|
5
13
|
### Documentation
|
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` :
|
@@ -270,7 +286,7 @@ After installing `Config` in Rails, you will find automatically generated file t
|
|
270
286
|
|
271
287
|
### General
|
272
288
|
|
273
|
-
* `const_name` - name of the object
|
289
|
+
* `const_name` - name of the object holding your settings. Default: `'Settings'`
|
274
290
|
* `evaluate_erb_in_yaml` - evaluate ERB in YAML config files. Set to false if the config file contains ERB that should not be evaluated at load time. Default: `true`
|
275
291
|
* `file_name` - name of the file to store general keys accessible in all environments. Default: `'settings'` - located at `config/settings.yml`
|
276
292
|
* `dir_name` - name of the directory to store environment-specific files. Default: `'settings'` - located at `config/settings/`
|
data/config.gemspec
CHANGED
@@ -28,19 +28,26 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.required_ruby_version = '>= 2.6.0'
|
29
29
|
|
30
30
|
s.add_dependency 'deep_merge', '~> 1.2', '>= 1.2.1'
|
31
|
+
s.add_dependency 'ostruct'
|
31
32
|
|
32
|
-
s.add_development_dependency 'dry-validation', *Config::DryValidationRequirements::VERSIONS
|
33
33
|
s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
|
34
34
|
|
35
35
|
# Testing
|
36
36
|
s.add_development_dependency 'appraisal', '~> 2.5', '>= 2.5.0'
|
37
|
+
s.add_development_dependency 'dry-validation', *Config::DryValidationRequirements::VERSIONS
|
37
38
|
s.add_development_dependency 'rspec', '~> 3.9', '>= 3.9.0'
|
38
39
|
|
39
40
|
# Default RSpec run will test against latest Rails app
|
40
41
|
unless ENV['APPRAISAL_INITIALIZED'] || ENV['GITHUB_ACTIONS']
|
41
42
|
gems_to_install = /gem "(.*?)", "(.*?)"(?!, platform: (?!\[:ruby\]))/
|
42
|
-
|
43
|
-
|
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
|
44
51
|
end
|
45
52
|
end
|
46
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
|
@@ -33,25 +32,19 @@ dependencies:
|
|
33
32
|
- !ruby/object:Gem::Version
|
34
33
|
version: 1.2.1
|
35
34
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
35
|
+
name: ostruct
|
37
36
|
requirement: !ruby/object:Gem::Requirement
|
38
37
|
requirements:
|
39
|
-
- - "~>"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '1.0'
|
42
38
|
- - ">="
|
43
39
|
- !ruby/object:Gem::Version
|
44
|
-
version:
|
45
|
-
type: :
|
40
|
+
version: '0'
|
41
|
+
type: :runtime
|
46
42
|
prerelease: false
|
47
43
|
version_requirements: !ruby/object:Gem::Requirement
|
48
44
|
requirements:
|
49
|
-
- - "~>"
|
50
|
-
- !ruby/object:Gem::Version
|
51
|
-
version: '1.0'
|
52
45
|
- - ">="
|
53
46
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
47
|
+
version: '0'
|
55
48
|
- !ruby/object:Gem::Dependency
|
56
49
|
name: rake
|
57
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,6 +85,26 @@ dependencies:
|
|
92
85
|
- - ">="
|
93
86
|
- !ruby/object:Gem::Version
|
94
87
|
version: 2.5.0
|
88
|
+
- !ruby/object:Gem::Dependency
|
89
|
+
name: dry-validation
|
90
|
+
requirement: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - "~>"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '1.0'
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 1.0.0
|
98
|
+
type: :development
|
99
|
+
prerelease: false
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '1.0'
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: 1.0.0
|
95
108
|
- !ruby/object:Gem::Dependency
|
96
109
|
name: rspec
|
97
110
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,47 +140,47 @@ dependencies:
|
|
127
140
|
- !ruby/object:Gem::Version
|
128
141
|
version: 1.16.0
|
129
142
|
- !ruby/object:Gem::Dependency
|
130
|
-
name:
|
143
|
+
name: kamal
|
131
144
|
requirement: !ruby/object:Gem::Requirement
|
132
145
|
requirements:
|
133
|
-
- -
|
146
|
+
- - "~>"
|
134
147
|
- !ruby/object:Gem::Version
|
135
|
-
version: 7.
|
148
|
+
version: 2.7.0
|
136
149
|
type: :development
|
137
150
|
prerelease: false
|
138
151
|
version_requirements: !ruby/object:Gem::Requirement
|
139
152
|
requirements:
|
140
|
-
- -
|
153
|
+
- - "~>"
|
141
154
|
- !ruby/object:Gem::Version
|
142
|
-
version: 7.
|
155
|
+
version: 2.7.0
|
143
156
|
- !ruby/object:Gem::Dependency
|
144
|
-
name:
|
157
|
+
name: rails
|
145
158
|
requirement: !ruby/object:Gem::Requirement
|
146
159
|
requirements:
|
147
|
-
- -
|
160
|
+
- - '='
|
148
161
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
162
|
+
version: 8.0.2
|
150
163
|
type: :development
|
151
164
|
prerelease: false
|
152
165
|
version_requirements: !ruby/object:Gem::Requirement
|
153
166
|
requirements:
|
154
|
-
- -
|
167
|
+
- - '='
|
155
168
|
- !ruby/object:Gem::Version
|
156
|
-
version:
|
169
|
+
version: 8.0.2
|
157
170
|
- !ruby/object:Gem::Dependency
|
158
|
-
name:
|
171
|
+
name: rspec-rails
|
159
172
|
requirement: !ruby/object:Gem::Requirement
|
160
173
|
requirements:
|
161
174
|
- - "~>"
|
162
175
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
176
|
+
version: 8.0.1
|
164
177
|
type: :development
|
165
178
|
prerelease: false
|
166
179
|
version_requirements: !ruby/object:Gem::Requirement
|
167
180
|
requirements:
|
168
181
|
- - "~>"
|
169
182
|
- !ruby/object:Gem::Version
|
170
|
-
version:
|
183
|
+
version: 8.0.1
|
171
184
|
- !ruby/object:Gem::Dependency
|
172
185
|
name: psych
|
173
186
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,6 +195,20 @@ dependencies:
|
|
182
195
|
- - ">="
|
183
196
|
- !ruby/object:Gem::Version
|
184
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
|
185
212
|
- !ruby/object:Gem::Dependency
|
186
213
|
name: mdl
|
187
214
|
requirement: !ruby/object:Gem::Requirement
|
@@ -225,10 +252,10 @@ email:
|
|
225
252
|
executables: []
|
226
253
|
extensions: []
|
227
254
|
extra_rdoc_files:
|
228
|
-
- README.md
|
229
255
|
- CHANGELOG.md
|
230
256
|
- CONTRIBUTING.md
|
231
257
|
- LICENSE.md
|
258
|
+
- README.md
|
232
259
|
files:
|
233
260
|
- CHANGELOG.md
|
234
261
|
- CONTRIBUTING.md
|
@@ -267,7 +294,6 @@ metadata:
|
|
267
294
|
funding_uri: https://opencollective.com/rubyconfig/donate
|
268
295
|
source_code_uri: https://github.com/rubyconfig/config
|
269
296
|
bug_tracker_uri: https://github.com/rubyconfig/config/issues
|
270
|
-
post_install_message:
|
271
297
|
rdoc_options:
|
272
298
|
- "--charset=UTF-8"
|
273
299
|
require_paths:
|
@@ -283,8 +309,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
283
309
|
- !ruby/object:Gem::Version
|
284
310
|
version: '0'
|
285
311
|
requirements: []
|
286
|
-
rubygems_version: 3.
|
287
|
-
signing_key:
|
312
|
+
rubygems_version: 3.6.9
|
288
313
|
specification_version: 4
|
289
314
|
summary: Effortless multi-environment settings in Rails, Sinatra, Padrino and others
|
290
315
|
test_files: []
|