complex_config 0.17.0 → 0.17.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: 6a62d35017801f81211c900cfd841264193155e1f89ebc27c387b7649da6dbcc
4
- data.tar.gz: 96cdc260febe8d2dff2f479421dcf7e94e61de4dacf77ee2ca30372c069e390c
3
+ metadata.gz: 165c452b58cc6363fb33d5e653b53eb4c2adcecafe8ee8f7d1be75991cd5c40b
4
+ data.tar.gz: 31eaf3a82ef3fd2779a1b95933370286ee4b5762d4ebafb4aae1c6b654782fa2
5
5
  SHA512:
6
- metadata.gz: aae99c356a7467495f3311dd0aaca592078164458183076aae3fd3688d65d7d0e0b37bf209cb6b0873715240b9d6b1105e04dbbd60ce80d0d53566e5a67a07a5
7
- data.tar.gz: a63690e1401e3df9bdc29cc6f9441812521bad478fb43ee4ed6be79d7bc39a220a56c90de3862b8d4510cd9ad04d48d534a92bcb0769500b8b7cb16c900f0328
6
+ metadata.gz: 8e72982da3fe131846d289c924fe817ddc77632c84770903ead2e02cdd3fbf03c379b73d015b5de85d066cbc3f97590d926f2dbeeb36599540dbb0c41347175c
7
+ data.tar.gz: faf171a9be237df8297e89bc26d81afe5d7dffabaac70690cc8976bce86e105b7d008fbd3f7e7a0ec786b9f85de326e9e59ec2c4438c7b0a88e5edf4181d337d
data/.gitignore CHANGED
@@ -7,3 +7,4 @@ Gemfile.lock
7
7
  coverage
8
8
  errors.lst
9
9
  pkg
10
+ tags
@@ -1,5 +1,4 @@
1
1
  rvm:
2
- - 2.0
3
2
  - 2.1
4
3
  - 2.2
5
4
  - 2.3
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ GemHadar do
12
12
  executables 'complex_config'
13
13
  test_dir 'spec'
14
14
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', 'coverage', '.rvmrc',
15
- '.AppleDouble', '.DS_Store', '.byebug_history', 'errors.lst'
15
+ '.AppleDouble', '.DS_Store', '.byebug_history', 'errors.lst', 'tags'
16
16
 
17
17
  readme 'README.md'
18
18
  title "#{name.camelize} -- configuration library"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.17.0
1
+ 0.17.1
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: complex_config 0.17.0 ruby lib
2
+ # stub: complex_config 0.17.1 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "complex_config".freeze
6
- s.version = "0.17.0"
6
+ s.version = "0.17.1"
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 = "2019-03-18"
11
+ s.date = "2019-11-27"
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]
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.homepage = "https://github.com/flori/complex_config".freeze
18
18
  s.licenses = ["Apache-2.0".freeze]
19
19
  s.rdoc_options = ["--title".freeze, "ComplexConfig -- configuration library".freeze, "--main".freeze, "README.md".freeze]
20
- s.rubygems_version = "3.0.3".freeze
20
+ s.rubygems_version = "3.0.6".freeze
21
21
  s.summary = "configuration library".freeze
22
22
  s.test_files = ["spec/complex_config/config_spec.rb".freeze, "spec/complex_config/encryption_spec.rb".freeze, "spec/complex_config/key_source_spec.rb".freeze, "spec/complex_config/plugins_spec.rb".freeze, "spec/complex_config/provider_spec.rb".freeze, "spec/complex_config/settings_spec.rb".freeze, "spec/complex_config/shortcuts_spec.rb".freeze, "spec/spec_helper.rb".freeze]
23
23
 
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.specification_version = 4
26
26
 
27
27
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.9.1"])
28
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
29
29
  s.add_development_dependency(%q<rake>.freeze, [">= 0"])
30
30
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
31
31
  s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.add_runtime_dependency(%q<tins>.freeze, [">= 0"])
35
35
  s.add_runtime_dependency(%q<mize>.freeze, ["~> 0.3", ">= 0.3.4"])
36
36
  else
37
- s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.9.1"])
37
+ s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
38
38
  s.add_dependency(%q<rake>.freeze, [">= 0"])
39
39
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
40
40
  s.add_dependency(%q<rspec>.freeze, [">= 0"])
@@ -44,7 +44,7 @@ Gem::Specification.new do |s|
44
44
  s.add_dependency(%q<mize>.freeze, ["~> 0.3", ">= 0.3.4"])
45
45
  end
46
46
  else
47
- s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.9.1"])
47
+ s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
48
48
  s.add_dependency(%q<rake>.freeze, [">= 0"])
49
49
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
50
50
  s.add_dependency(%q<rspec>.freeze, [">= 0"])
@@ -106,7 +106,7 @@ class ComplexConfig::Provider
106
106
  shared = shared.to_h
107
107
  settings.each do |key, value|
108
108
  if value.is_a? ComplexConfig::Settings
109
- value.attributes_update(shared)
109
+ value.attributes_update_if_nil(shared)
110
110
  elsif value.nil?
111
111
  settings[key] = ComplexConfig::Settings.build(nil, shared.dup)
112
112
  end
@@ -76,6 +76,15 @@ class ComplexConfig::Settings < BasicObject
76
76
  @table.update(other.table)
77
77
  end
78
78
 
79
+ def attributes_update_if_nil(other)
80
+ unless other.is_a? self.class
81
+ other = self.class.from_hash(other)
82
+ end
83
+ @table.update(other.table) do |key, oldval, newval|
84
+ @table.key?(key) ? oldval : newval
85
+ end
86
+ end
87
+
79
88
  def replace_attributes(hash)
80
89
  @table = self.class.from_hash(hash).table
81
90
  self
@@ -1,6 +1,6 @@
1
1
  module ComplexConfig
2
2
  # ComplexConfig version
3
- VERSION = '0.17.0'
3
+ VERSION = '0.17.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:
@@ -314,8 +314,8 @@ RSpec.describe ComplexConfig::Provider do
314
314
 
315
315
  it 'can share values' do
316
316
  expect(described_class['config'].development.shared).to eq true
317
- expect(described_class['config'].test.shared).to eq true
318
- expect(described_class['config'].staging.shared).to eq true
317
+ expect(described_class['config'].test.shared).to eq nil
318
+ expect(described_class['config'].staging.shared).to eq false
319
319
  end
320
320
  end
321
321
  end
@@ -9,8 +9,10 @@ development:
9
9
  pi: <%= Math::PI %>
10
10
 
11
11
  staging:
12
+ shared: false
12
13
 
13
14
  test:
15
+ shared: null
14
16
  config:
15
17
  foo: false
16
18
  bar: true
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.17.0
4
+ version: 0.17.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: 2019-03-18 00:00:00.000000000 Z
11
+ date: 2019-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.9.1
19
+ version: 1.11.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.9.1
26
+ version: 1.11.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -219,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
219
  - !ruby/object:Gem::Version
220
220
  version: '0'
221
221
  requirements: []
222
- rubygems_version: 3.0.3
222
+ rubygems_version: 3.0.6
223
223
  signing_key:
224
224
  specification_version: 4
225
225
  summary: configuration library