complex_config 0.22.0 → 0.22.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87d37380ff1a936489b129f9b8c880809a8aa5d4f36ab5f150ceb2e639bc56e7
4
- data.tar.gz: edabf53e8b9ed1e6a1bec250ed5abe66a451c9da14a5ac253eb6797cd588dec2
3
+ metadata.gz: d25e925267a755f28ea324b3ed2f43d737659124e097ae52ac48bd87aedd9173
4
+ data.tar.gz: f68858a3bba577915b3d602093363f1143b29be84cfe42f4ac4c64056baa5551
5
5
  SHA512:
6
- metadata.gz: 924206444ddc739ef51bb9367974947ccd63d883e4ed58a16f499ca8bee103ed3fab8d5b1e008e8c69ca7b6eee8ba235ef6ec59886c728c0fa46bf0a6fbce390
7
- data.tar.gz: 4f7e39f2a7e46024c7bdedb762d252d6e6b0f867b492a38a29dfdb64d835973948fb7df376d468d8574b256bac0f0c539c091e0489e30414f317eb5c04d88c01
6
+ metadata.gz: c9cb2d7480057aa2685952e8c272c8a10245664c0e30fbdf83d76c1fd5c2ff196eb84bec265baa5fae19283acdcb9efd5c25e90721e40df4fe185fa5c2273bf9
7
+ data.tar.gz: 463827352c5df8655b58ea371c57733b78aa2a00ca28ac0e77516cb2b7edaf43919f5b5c93cf27e32d3add7d8eec53b8204af9b862871ba3d9a0037220ce34ae
data/CHANGES.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changes
2
2
 
3
+ ## 2024-09-22 v0.22.1
4
+
5
+ #### Bug Fixes and Improvements
6
+
7
+ * Refactor ComplexConfig settings and specs to handle nil values:
8
+ * Added `nil` handling in `ComplexConfig::Settings`
9
+ * Updated `settings_spec.rb` to test for `nil` values
10
+ * Update dependencies and date in gemspec files:
11
+ - Removed development dependency `'utils'` from Rakefile.
12
+ - Updated date in `complex_config.gemspec` from "2024-09-13" to "2024-09-22"
13
+
14
+ * Bumped version to **0.22.1**:
15
+ - Updated `VERSION` in `lib/complex_config/version.rb` from **0.22.0** to **0.22.1**
16
+ - Updated `s.version` in `complex_config.gemspec` from **0.22.0** to **0.22.1**
17
+ - Updated gem stub version in `complex_config.gemspec` from **0.22.0** to **0.22.1**
18
+
3
19
  ## 2024-09-12 v0.22.0
4
20
 
5
21
  * **New Feature: UTF-8 Support**
data/Rakefile CHANGED
@@ -30,7 +30,6 @@ GemHadar do
30
30
  development_dependency 'simplecov'
31
31
  development_dependency 'rspec'
32
32
  development_dependency 'monetize'
33
- development_dependency 'utils'
34
33
  development_dependency 'debug'
35
34
  end
36
35
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.22.0
1
+ 0.22.1
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: complex_config 0.22.0 ruby lib
2
+ # stub: complex_config 0.22.1 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "complex_config".freeze
6
- s.version = "0.22.0".freeze
6
+ s.version = "0.22.1".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]
10
10
  s.authors = ["Florian Frank".freeze]
11
- s.date = "2024-09-12"
11
+ s.date = "2024-09-22"
12
12
  s.description = "This library allows you to access configuration files via a simple interface".freeze
13
13
  s.email = "flori@ping.de".freeze
14
14
  s.executables = ["complex_config".freeze]
@@ -28,7 +28,6 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
29
29
  s.add_development_dependency(%q<rspec>.freeze, [">= 0".freeze])
30
30
  s.add_development_dependency(%q<monetize>.freeze, [">= 0".freeze])
31
- s.add_development_dependency(%q<utils>.freeze, [">= 0".freeze])
32
31
  s.add_development_dependency(%q<debug>.freeze, [">= 0".freeze])
33
32
  s.add_runtime_dependency(%q<json>.freeze, [">= 0".freeze])
34
33
  s.add_runtime_dependency(%q<tins>.freeze, [">= 0".freeze])
@@ -104,7 +104,11 @@ class ComplexConfig::Settings < BasicObject
104
104
  if ::Array === v
105
105
  v.to_ary.map { |x| (x.ask_and_send(:to_h) rescue x) || x }
106
106
  elsif v.respond_to?(:to_h)
107
- v.ask_and_send(:to_h) rescue v
107
+ if v.nil?
108
+ nil
109
+ else
110
+ v.ask_and_send(:to_h) rescue v
111
+ end
108
112
  else
109
113
  v
110
114
  end
@@ -1,6 +1,6 @@
1
1
  module ComplexConfig
2
2
  # ComplexConfig version
3
- VERSION = '0.22.0'
3
+ VERSION = '0.22.1'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
@@ -16,4 +16,3 @@ RSpec.describe ComplexConfig::Config do
16
16
  expect(ComplexConfig::Provider.plugins).to include plugin_code
17
17
  end
18
18
  end
19
-
@@ -43,4 +43,3 @@ RSpec.describe ComplexConfig::Plugins do
43
43
  end
44
44
  end
45
45
  end
46
-
@@ -19,7 +19,8 @@ RSpec.describe ComplexConfig::Settings do
19
19
  bar: {
20
20
  baz: true
21
21
  },
22
- qux: 'quux'
22
+ nix: nil,
23
+ qux: 'quux',
23
24
  }
24
25
  ]
25
26
  obj.name_prefix = 'root'
@@ -69,7 +70,7 @@ RSpec.describe ComplexConfig::Settings do
69
70
  end
70
71
 
71
72
  it 'can display its attribute_names' do
72
- expect(settings.foo.attribute_names).to eq [ :bar, :qux ]
73
+ expect(settings.foo.attribute_names).to eq %i[ bar nix qux ]
73
74
  end
74
75
 
75
76
  it 'can display its attribute_values' do
@@ -83,19 +84,21 @@ RSpec.describe ComplexConfig::Settings do
83
84
  end
84
85
 
85
86
  it 'can be converted into a hash' do
86
- expect(settings.foo.to_h).to eq(bar: { baz: true }, qux: 'quux')
87
+ expect(settings.foo.to_h).to eq(bar: { baz: true }, nix: nil, qux: 'quux')
87
88
  end
88
89
 
89
90
  it 'can return a hash with pathes as keys' do
90
91
  expect(settings.pathes(path_sep: ?:)).to eq(
91
92
  'root:foo:bar:baz' => true,
92
- 'root:foo:qux' => "quux"
93
+ 'root:foo:nix' => nil,
94
+ 'root:foo:qux' => "quux",
93
95
  )
94
96
  end
95
97
 
96
98
  it 'can be listed as string' do
97
99
  expect(settings.attributes_list(pair_sep: ' → ', path_sep: ?/)).to eq <<~EOT
98
100
  root/foo/bar/baz → true
101
+ root/foo/nix → nil
99
102
  root/foo/qux → "quux"
100
103
  EOT
101
104
  end
@@ -108,6 +111,7 @@ RSpec.describe ComplexConfig::Settings do
108
111
  settings[:ary] = described_class[ [ 1, { nested: 2 }, 3 ] ]
109
112
  expect(settings.attributes_list).to eq <<~EOT
110
113
  root.foo.bar.baz = true
114
+ root.foo.nix = nil
111
115
  root.foo.qux = "quux"
112
116
  root.ary[0] = 1
113
117
  root.ary[1].nested = 2
@@ -122,6 +126,7 @@ RSpec.describe ComplexConfig::Settings do
122
126
  ├─ foo
123
127
  │ ├─ bar
124
128
  │ │ └─ baz = true
129
+ │ ├─ nix = nil
125
130
  │ └─ qux = "quux"
126
131
  └─ ary
127
132
  ├─ 1
@@ -138,6 +143,7 @@ RSpec.describe ComplexConfig::Settings do
138
143
  └─ foo
139
144
  ├─ bar
140
145
  │ └─ baz = true
146
+ ├─ nix = nil
141
147
  └─ qux = "quux"
142
148
  EOT
143
149
  settings.pretty_print(q)
@@ -150,6 +156,7 @@ RSpec.describe ComplexConfig::Settings do
150
156
  `- foo
151
157
  +- bar
152
158
  | `- baz = true
159
+ +- nix = nil
153
160
  `- qux = "quux"
154
161
  EOT
155
162
  ENV['LANG'] = 'de_DE.ISO8859-15'
@@ -162,12 +169,13 @@ RSpec.describe ComplexConfig::Settings do
162
169
  :foo:
163
170
  :bar:
164
171
  :baz: true
172
+ :nix:
165
173
  :qux: quux
166
174
  EOT
167
175
  end
168
176
 
169
177
  it 'can be converted into JSON' do
170
- expect(settings.to_json).to eq '{"foo":{"bar":{"baz":true},"qux":"quux"}}'
178
+ expect(settings.to_json).to eq '{"foo":{"bar":{"baz":true},"nix":null,"qux":"quux"}}'
171
179
  end
172
180
 
173
181
  it 'raises exception if expected attribute is missing' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: complex_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.22.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-12 00:00:00.000000000 Z
11
+ date: 2024-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: utils
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: debug
99
85
  requirement: !ruby/object:Gem::Requirement