config_reader 3.0.2 → 3.0.3

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: ff6af0d4ec72275cf3d8186e9f889a8a0dee9c94e9ca16552d8a7da3e4f057a0
4
- data.tar.gz: 6be5d22c4fb82c0fb60927a6f63d5abe287f2dbc7bedb87e67fb0bfa39dd7bb7
3
+ metadata.gz: c5f34ccb03e315e9301ebedd211dca7e5fde4842e14e15a4f809ee6c0e5f16cd
4
+ data.tar.gz: 45f064ce87458166d7ccec76e18d8f3ceeaee36ac91665d6c0db6037f8e84d9b
5
5
  SHA512:
6
- metadata.gz: 600ea0a78d494acecc50f787fa8ab4d8594592f5ccd70dfbc892b3e4068f31c12dc79c56d7c4801089dc47834af26da65bfbacceef09e8d3ee3962b352720ff6
7
- data.tar.gz: 2d39e35dbcd26edd3b9a50e364b0d4ec1dd091691ba43989baaf386d28212c04250fdc04946f636b728fb3754546d65c3ac74be2ff74e5d5ea52c24a0867c570
6
+ metadata.gz: 297c24bc4211132943f69e3a5b85f7d2686389f481c4b3b51fc10d530abebd638bb2705b274ac4546be65f9738331f573b39f10ea5b8d2d088270653c41058d5
7
+ data.tar.gz: 171d64da65475f7188967b1152715ec63730a4322b814372b66c4f5da1f8601b9619ff82c437907efc3acaf3e9ecff06bbcb7cd068584a0adb44e613cfb5c024
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.0.3 2025-01-06
4
+
5
+ Fix a bug in deep merge where values weren't getting set properly.
6
+
3
7
  ## 3.0.2 2024-12-13
4
8
 
5
9
  Fix an issue when merging multiple envs.
@@ -28,7 +28,7 @@ class ConfigReader
28
28
  end
29
29
 
30
30
  def respond_to_missing?(m, *)
31
- config.key?(m)
31
+ key?(m)
32
32
  end
33
33
  end
34
34
  end
@@ -1,3 +1,3 @@
1
1
  class ConfigReader
2
- VERSION = "3.0.2"
2
+ VERSION = "3.0.3"
3
3
  end
data/lib/config_reader.rb CHANGED
@@ -40,7 +40,7 @@ class ConfigReader
40
40
  if this_val.is_a?(Hash) && other_val.is_a?(Hash)
41
41
  deep_merge(this_val, other_val)
42
42
  else
43
- hash[key] = other_val
43
+ other_val
44
44
  end
45
45
  end
46
46
  end
@@ -109,12 +109,12 @@ class ConfigReader
109
109
  def merge_all_configs(conf, defaults, sekrets)
110
110
  @envs = {}
111
111
 
112
- (conf.keys - ["defaults"]).each do |env|
113
- key_hash = deep_merge(defaults.dup, conf[env]) if conf[env]
114
- key_hash = deep_merge(key_hash, sekrets[env]) if sekrets&.[](env)
112
+ conf.keys.each do |env|
113
+ env_hash = deep_merge(defaults, conf[env] || {})
114
+ env_hash = deep_merge(env_hash, sekrets[env] || {}) if sekrets
115
115
 
116
116
  @envs[env] = ConfigHash.convert_hash(
117
- key_hash,
117
+ env_hash,
118
118
  configuration.ignore_missing_keys
119
119
  )
120
120
  end
@@ -33,7 +33,8 @@ describe "ConfigReader" do
33
33
 
34
34
  describe "all envs available" do
35
35
  it "should have all envs available" do
36
- expect(TestConfig.envs.keys).to eq(%w[test not_test])
36
+ TestConfig.reload
37
+ expect(TestConfig.envs.keys).to eq(%w[defaults test not_test])
37
38
  end
38
39
 
39
40
  it "should have ConfigHash for all envs" do
@@ -0,0 +1,6 @@
1
+ class MergeConfig < ConfigReader
2
+ configure do |config|
3
+ config.environment = "merge"
4
+ config.config_file = "spec/multi_envs/merge_config.yml"
5
+ end
6
+ end
@@ -0,0 +1,15 @@
1
+ ---
2
+ defaults:
3
+ app_name: default_app
4
+ nested_key:
5
+ value: test
6
+
7
+ test:
8
+ app_name: test_app
9
+ nested_key:
10
+ only_in_test_env: true
11
+
12
+ not_test:
13
+ app_name: not_test_app
14
+
15
+ merge:
@@ -0,0 +1,18 @@
1
+ require "spec_helper"
2
+ require "multi_envs/merge_config"
3
+
4
+ describe "ConfigReader" do
5
+ before(:all) { MergeConfig.reload }
6
+
7
+ describe "all envs available" do
8
+ it "should have all envs available" do
9
+ expect(MergeConfig.envs.keys).to eq(%w[defaults test not_test merge])
10
+ end
11
+
12
+ it "should have ConfigHash for all envs" do
13
+ expect(MergeConfig.envs["test"].app_name).to eq("test_app")
14
+ expect(MergeConfig.envs["not_test"].app_name).to eq("not_test_app")
15
+ expect(MergeConfig.envs["merge"]).to eq(MergeConfig.envs["defaults"])
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: config_reader
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Moen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-13 00:00:00.000000000 Z
11
+ date: 2025-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: abbrev
@@ -113,6 +113,9 @@ files:
113
113
  - lib/config_reader/config_hash.rb
114
114
  - lib/config_reader/version.rb
115
115
  - spec/config_reader_spec.rb
116
+ - spec/multi_envs/merge_config.rb
117
+ - spec/multi_envs/merge_config.yml
118
+ - spec/multi_envs/merge_spec.rb
116
119
  - spec/no_key_no_error_config.rb
117
120
  - spec/sekrets_config.rb
118
121
  - spec/sekrets_config.yml.enc