const_conf 0.5.0 → 0.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/CHANGES.md +21 -0
- data/Rakefile +5 -1
- data/const_conf.gemspec +5 -5
- data/lib/const_conf/setting.rb +0 -2
- data/lib/const_conf/version.rb +1 -1
- data/lib/const_conf.rb +32 -0
- data/spec/const_conf_spec.rb +30 -7
- metadata +14 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 75174c5894d1b360f0479a75f47121b16ea7cfd8d3bf92b6d6c886eb41620459
|
|
4
|
+
data.tar.gz: b8fcd102d3c0287854d4e5dc26b137840a5ff36596096d740b60830bdc7cc4c0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 226ffb061d21faed487ba07e44a95f6a352b3da9fc38fdde00be4a15c6e5721cad0f436f85fea82d2f553b4a172335d3b6b6eca5578b84481d968f8130a29770
|
|
7
|
+
data.tar.gz: bd2d8a7cacff72d4f6d460120b3b85407863fdd451a35cf3a848f5c2bf98807b3b0d3c17cb9451e79321a4feda4b375778fac1c4996a73da916ad89f9f666ef3
|
data/CHANGES.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## 2026-01-27 v0.6.0
|
|
4
|
+
|
|
5
|
+
- Added `documentation` method to `ConstConf` module that generates Markdown
|
|
6
|
+
documentation
|
|
7
|
+
- Method supports both string return and IO writing modes via `io:` parameter
|
|
8
|
+
- Handles sensitive values by redacting them with `_redacted_`
|
|
9
|
+
- Includes default value handling with `_undefined_` for nil defaults
|
|
10
|
+
- Method produces output suitable for README files and documentation
|
|
11
|
+
- Added comprehensive tests for the new `documentation` method
|
|
12
|
+
- Method integrates with existing `env_var_names` and `setting_for` infrastructure
|
|
13
|
+
- Supports `ConstConf::Setting` objects with proper description and default value handling
|
|
14
|
+
- Updated CI configuration
|
|
15
|
+
- Use `bundle exec rake spec` instead of `rake spec`
|
|
16
|
+
- Added `before` and `after` hooks in CI script to remove `Gemfile.lock` during runs
|
|
17
|
+
- Added `changelog` configuration block to specify `CHANGES.md` as the changelog filename
|
|
18
|
+
- Updated `all_images` gem dependency from version **0.8** to **>= 0.12**
|
|
19
|
+
- Updated `gem_hadar` development dependency from **2.16.3** to **2.17.0**
|
|
20
|
+
- Updated Ruby version from 4.0-rc-alpine to 4.0-alpine
|
|
21
|
+
- Updated rubygems version to **4.0.3**
|
|
22
|
+
- Simplified environment variable handling logic
|
|
23
|
+
|
|
3
24
|
## 2025-12-19 v0.5.0
|
|
4
25
|
|
|
5
26
|
- Added `ruby:4.0-rc-alpine` image to test matrix in `.all_images.yml`
|
data/Rakefile
CHANGED
|
@@ -21,6 +21,10 @@ GemHadar do
|
|
|
21
21
|
'.contexts', '.github'
|
|
22
22
|
readme 'README.md'
|
|
23
23
|
|
|
24
|
+
changelog do
|
|
25
|
+
filename 'CHANGES.md'
|
|
26
|
+
end
|
|
27
|
+
|
|
24
28
|
github_workflows(
|
|
25
29
|
'static.yml' => {}
|
|
26
30
|
)
|
|
@@ -34,8 +38,8 @@ GemHadar do
|
|
|
34
38
|
development_dependency 'debug'
|
|
35
39
|
development_dependency 'rspec', '~> 3.13'
|
|
36
40
|
development_dependency 'context_spook', '~> 0.4'
|
|
37
|
-
development_dependency 'all_images', '~> 0.8'
|
|
38
41
|
development_dependency 'simplecov', '~> 0.22'
|
|
42
|
+
development_dependency 'all_images', '>= 0.12'
|
|
39
43
|
|
|
40
44
|
licenses << 'MIT'
|
|
41
45
|
end
|
data/const_conf.gemspec
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: const_conf 0.
|
|
2
|
+
# stub: const_conf 0.6.0 ruby lib
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "const_conf".freeze
|
|
6
|
-
s.version = "0.
|
|
6
|
+
s.version = "0.6.0".freeze
|
|
7
7
|
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
9
9
|
s.require_paths = ["lib".freeze]
|
|
@@ -17,18 +17,18 @@ Gem::Specification.new do |s|
|
|
|
17
17
|
s.licenses = ["MIT".freeze]
|
|
18
18
|
s.rdoc_options = ["--title".freeze, "ConstConf - Clean DSL for config settings with validation and Rails integration".freeze, "--main".freeze, "README.md".freeze]
|
|
19
19
|
s.required_ruby_version = Gem::Requirement.new(">= 3.2".freeze)
|
|
20
|
-
s.rubygems_version = "4.0.
|
|
20
|
+
s.rubygems_version = "4.0.3".freeze
|
|
21
21
|
s.summary = "Clean DSL for config settings with validation and Rails integration".freeze
|
|
22
22
|
s.test_files = ["spec/const_conf/dir_plugin_spec.rb".freeze, "spec/const_conf/env_dir_extension_spec.rb".freeze, "spec/const_conf/file_plugin_spec.rb".freeze, "spec/const_conf/json_plugin_spec.rb".freeze, "spec/const_conf/setting_accessor_spec.rb".freeze, "spec/const_conf/setting_spec.rb".freeze, "spec/const_conf/tree_spec.rb".freeze, "spec/const_conf/yaml_plugin_spec.rb".freeze, "spec/const_conf_spec.rb".freeze, "spec/spec_helper.rb".freeze]
|
|
23
23
|
|
|
24
24
|
s.specification_version = 4
|
|
25
25
|
|
|
26
|
-
s.add_development_dependency(%q<gem_hadar>.freeze, ["
|
|
26
|
+
s.add_development_dependency(%q<gem_hadar>.freeze, [">= 2.17.0".freeze])
|
|
27
27
|
s.add_development_dependency(%q<debug>.freeze, [">= 0".freeze])
|
|
28
28
|
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.13".freeze])
|
|
29
29
|
s.add_development_dependency(%q<context_spook>.freeze, ["~> 0.4".freeze])
|
|
30
|
-
s.add_development_dependency(%q<all_images>.freeze, ["~> 0.8".freeze])
|
|
31
30
|
s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.22".freeze])
|
|
31
|
+
s.add_development_dependency(%q<all_images>.freeze, [">= 0.12".freeze])
|
|
32
32
|
s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.43".freeze])
|
|
33
33
|
s.add_runtime_dependency(%q<json>.freeze, ["~> 2.0".freeze])
|
|
34
34
|
s.add_runtime_dependency(%q<complex_config>.freeze, ["~> 0.23".freeze])
|
data/lib/const_conf/setting.rb
CHANGED
data/lib/const_conf/version.rb
CHANGED
data/lib/const_conf.rb
CHANGED
|
@@ -424,6 +424,38 @@ module ConstConf
|
|
|
424
424
|
end
|
|
425
425
|
end
|
|
426
426
|
|
|
427
|
+
# Generates documentation for all configuration settings as a Markdown
|
|
428
|
+
# table
|
|
429
|
+
#
|
|
430
|
+
# This method provides a Markdown-formatted list showing all configuration
|
|
431
|
+
# settings with their environment variable names, descriptions, default
|
|
432
|
+
# values, and required status. The output is suitable for inclusion in
|
|
433
|
+
# README files or documentation.
|
|
434
|
+
#
|
|
435
|
+
# @param io [IO, nil] the IO object to write the documentation to; if nil, returns a String
|
|
436
|
+
# @return [String, nil] the Markdown documentation as a string if io is nil, nil otherwise
|
|
437
|
+
def documentation(io: nil)
|
|
438
|
+
result = io || +''
|
|
439
|
+
result << "## Environment variables\n\n"
|
|
440
|
+
|
|
441
|
+
env_var_names.map do |env_var_name|
|
|
442
|
+
setting_for(env_var_name)
|
|
443
|
+
end.each do |setting|
|
|
444
|
+
default = if setting.sensitive?
|
|
445
|
+
'_redacted_'
|
|
446
|
+
elsif setting.default_value.nil?
|
|
447
|
+
'_undefined_'
|
|
448
|
+
else
|
|
449
|
+
"`#{setting.default_value.inspect}`"
|
|
450
|
+
end
|
|
451
|
+
result << " - `#{setting.env_var_name}`\n"
|
|
452
|
+
result << " - __description__: #{setting.description}\n"
|
|
453
|
+
result << " - __default__: #{default}\n"
|
|
454
|
+
end
|
|
455
|
+
|
|
456
|
+
result
|
|
457
|
+
end
|
|
458
|
+
|
|
427
459
|
# Iterates over a configuration module and its nested configurations in a
|
|
428
460
|
# depth-first manner.
|
|
429
461
|
#
|
data/spec/const_conf_spec.rb
CHANGED
|
@@ -256,14 +256,37 @@ describe ConstConf do
|
|
|
256
256
|
expect(TestConstConf.setting_for('TEST_CONST_CONF_TEST').value).
|
|
257
257
|
to eq 'bar'
|
|
258
258
|
end
|
|
259
|
+
end
|
|
259
260
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
261
|
+
describe '.view' do
|
|
262
|
+
it 'renders tree view' do
|
|
263
|
+
expect(ConstConf::Tree).to receive(:from_const_conf).with(
|
|
264
|
+
TestConstConf
|
|
265
|
+
)
|
|
266
|
+
TestConstConf.view
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
describe '.documentation' do
|
|
271
|
+
it 'generates markdown documentation' do
|
|
272
|
+
doc = TestConstConf.documentation
|
|
273
|
+
expect(doc).to be_a String
|
|
274
|
+
expect(doc).to include('## Environment variables')
|
|
275
|
+
expect(doc).to include('`TEST_CONST_CONF_TEST`')
|
|
276
|
+
expect(doc).to match(/description.*?test/)
|
|
277
|
+
expect(doc).to match(/default.*?bar/)
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
it 'writes documentation to IO object' do
|
|
281
|
+
io = StringIO.new
|
|
282
|
+
result = TestConstConf.documentation(io: io)
|
|
283
|
+
|
|
284
|
+
expect(result).to be_a StringIO
|
|
285
|
+
doc = io.string
|
|
286
|
+
expect(doc).to include('## Environment variables')
|
|
287
|
+
expect(doc).to include('`TEST_CONST_CONF_TEST`')
|
|
288
|
+
expect(doc).to match(/description.*?test/)
|
|
289
|
+
expect(doc).to match(/default.*?bar/)
|
|
267
290
|
end
|
|
268
291
|
end
|
|
269
292
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: const_conf
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Florian Frank
|
|
@@ -13,16 +13,16 @@ dependencies:
|
|
|
13
13
|
name: gem_hadar
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
|
-
- - "
|
|
16
|
+
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version:
|
|
18
|
+
version: 2.17.0
|
|
19
19
|
type: :development
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
|
-
- - "
|
|
23
|
+
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version:
|
|
25
|
+
version: 2.17.0
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: debug
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,33 +66,33 @@ dependencies:
|
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
67
|
version: '0.4'
|
|
68
68
|
- !ruby/object:Gem::Dependency
|
|
69
|
-
name:
|
|
69
|
+
name: simplecov
|
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '0.
|
|
74
|
+
version: '0.22'
|
|
75
75
|
type: :development
|
|
76
76
|
prerelease: false
|
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
79
|
- - "~>"
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: '0.
|
|
81
|
+
version: '0.22'
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
|
-
name:
|
|
83
|
+
name: all_images
|
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
|
85
85
|
requirements:
|
|
86
|
-
- - "
|
|
86
|
+
- - ">="
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '0.
|
|
88
|
+
version: '0.12'
|
|
89
89
|
type: :development
|
|
90
90
|
prerelease: false
|
|
91
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
92
|
requirements:
|
|
93
|
-
- - "
|
|
93
|
+
- - ">="
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '0.
|
|
95
|
+
version: '0.12'
|
|
96
96
|
- !ruby/object:Gem::Dependency
|
|
97
97
|
name: tins
|
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -229,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
229
229
|
- !ruby/object:Gem::Version
|
|
230
230
|
version: '0'
|
|
231
231
|
requirements: []
|
|
232
|
-
rubygems_version: 4.0.
|
|
232
|
+
rubygems_version: 4.0.3
|
|
233
233
|
specification_version: 4
|
|
234
234
|
summary: Clean DSL for config settings with validation and Rails integration
|
|
235
235
|
test_files:
|