complex_config 0.19.2 → 0.19.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: 3486d5210e50100d17dea40922e6958c06898ba4ec70d3830b58b50160ecdeba
4
- data.tar.gz: ee463ae5164fee75e2a4454b1176b1d31903026924297aca8371814cf6e1649d
3
+ metadata.gz: b4a1562a55eb1a93435d27f476d78745853d6cd92f9f2f509bb6f0222625e218
4
+ data.tar.gz: cd505065b7d309a0d3fb0309d3e77fae65044b711632c8c0abe04fd0a74d14ea
5
5
  SHA512:
6
- metadata.gz: 6ea338ae3b2f8b9ea408d0a2e439afd14f21ba29937f82d33d01f3db6c155513e16108d3647345e3c05031c6ba06433ab9db7d626ba5be427758be6ad51f1981
7
- data.tar.gz: 3cba305f3824ff5da2592283ce698ff7f06d28fe1c9c61caabd6fc77c7f0601664a7a4213bf8b47a14adb88bdb29ee43a44b4220ca9305b441678905d94c2b77
6
+ metadata.gz: bc0ec49f9ad9e50e010a1aa3632fd96a6efd436b6c0cd7f7d441248e0361f5f16dfaea68507a6218ceef145912034155362370a94b363832bab247152f205e0d
7
+ data.tar.gz: 01a5162d15b3e2c02a3454fc190de89b1fc1ddd25c3bc5e83532542c41e7dc2df0bb612bf03a87a9b7327c362079e0e58da75ab63652b0da6af722d3b72049a9
data/.all_images.yml ADDED
@@ -0,0 +1,17 @@
1
+ dockerfile: |-
2
+ RUN apk add --no-cache build-base git
3
+ RUN gem update --system
4
+ RUN gem install gem_hadar bundler
5
+ script: &script |-
6
+ echo -e "\e[1m"
7
+ ruby -v
8
+ echo -e "\e[0m"
9
+ bundle
10
+ rake test
11
+
12
+ images:
13
+ ruby:3.1-alpine: *script
14
+ ruby:3.0-alpine: *script
15
+ ruby:2.7-alpine: *script
16
+ ruby:2.6-alpine: *script
17
+ ruby:2.5-alpine: *script
data/README.md CHANGED
@@ -142,86 +142,6 @@ Here is the `ComplexConfig::Plugins::MONEY` plugin for example:
142
142
  end
143
143
  end
144
144
 
145
- ## Changes
146
-
147
- * 2019-03-18 Release 0.17.0
148
- * Improve error message for missing encryption key
149
- * 2019-03-14 Release 0.16.0
150
- * Enable `- trim_mode` for ERB in yml files
151
- * Allow `to_json` calls on settings
152
- * 2019-03-14 Release 0.15.1
153
- * Fix shared feature for empy top level settings
154
- * 2018-12-07 Release 0.15.0
155
- * Allow inplace recrypt for encrypted files
156
- * 2018-07-06 Release 0.14.0
157
- * Better support for rails encryption
158
- * Adds `complex_config` executable.
159
- * 2018-02-23 Release 0.13.3
160
- Change evaluation order of key sources
161
- * 2018-02-23 Release 0.13.2
162
- Refactor key sources
163
- * 2018-02-09 Release 0.13.1
164
- Improve error reporting for encrypted files (missing key)
165
- * 2018-01-26 Release 0.13.0
166
- Improve `write_config` interface and more tests
167
- * 2017-11-17 Release 0.12.2
168
- Output string keys on top level configs, Rails don't like it otherwise.
169
- * 2017-11-17 Release 0.12.1
170
- Do not output newlines when writing encrypted configs, Rails don't like it.
171
- * 2017-11-16 Release 0.12.0
172
- * Supports writing of configurations (encrypted or unencrypted)
173
- * 2017-11-16 Release 0.11.3
174
- * Small bugfix
175
- * 2017-10-30 Release 0.11.2
176
- * Small bugfix
177
- * 2017-10-27 Release 0.11.1
178
- * Small bugfix
179
- * 2017-10-27 Release 0.11.0
180
- * Support encrypted config files a la rails
181
- * 2017-02-02 Release 0.10.0
182
- * `cc.foo?`/`complex_config.foo?` returns config or nil (when not existant)
183
- * 2017-01-23 Release 0.9.2
184
- * Improve performance for proxy objects
185
- * 2016-11-22 Release 0.9.1
186
- * Fix travis builds
187
- * 2016-11-22 Release 0.9.0
188
- * Extract ComplexConfig::Provider::Shortcuts into its own module
189
- * 2016-07-21 Release 0.8.0
190
- * `ComplexConfig::Settings` can be replaced with `replace_attributes` which
191
- allows for easier testing by calling:
192
- `cc.foo.replace_attributes(new: 'settings')`.
193
- * 2016-07-15 Release 0.7.0
194
- * Slim down `ComplexConfig::Settings` interface to avoid clashes with methods
195
- mixed into `Object` class or `Enumerable#instance_methods`
196
- * 2016-07-15 Release 0.6.0
197
- * Depend on mize gem for caching.
198
- * 2016-06-23 Release 0.5.2
199
- * Resolve index access via the plugin code path, so foo.bar and foo[:bar]
200
- have the same result for a plugin key.
201
- * 2015-11-19 Release 0.5.0
202
- * Support rails reloading behaviour.
203
- * Allow configuration via ComplexConfig.configure(&block) method.
204
- * 2015-11-17 Release 0.4.0
205
- * Add root object for configuration, e. g. cc.name instead of cc(name).
206
- * 2015-11-03 Release 0.3.1
207
- * Add missing dependency to tins.
208
- * 2015-11-03 Release 0.3.0
209
- * Add nicer default output for settings.
210
- * 2015-03-24 Release 0.2.3
211
- * Fix typo in load error case of money.
212
- * 2015-02-25 Release 0.2.2
213
- * Fix an issue with path interpolation.
214
- * 2015-01-28 Release 0.2.1
215
- * Turn monetize into a runtime dependency for the plugin.
216
- * 2015-01-27 Release 0.2.0
217
- * Fix for attributes named like Enumerable methods
218
- * Make tests run on JRuby
219
- * 2015-01-01 Release 0.1.1
220
- * Some small fixes for handling of arrays
221
- * 2014-12-15 Release 0.1.0
222
- * Freeze configuration by default.
223
- * 2014-12-12 Release 0.0.0
224
-
225
145
  ## Download
226
146
 
227
147
  The homepage of this library is located at
data/Rakefile CHANGED
@@ -13,6 +13,8 @@ GemHadar do
13
13
  test_dir 'spec'
14
14
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', 'coverage', '.rvmrc',
15
15
  '.AppleDouble', '.DS_Store', '.byebug_history', 'errors.lst', 'tags'
16
+ package_ignore '.all_images', '.utilsrc', '.rspec', '.tool-versions',
17
+ '.gitignore'
16
18
 
17
19
  readme 'README.md'
18
20
  title "#{name.camelize} -- configuration library"
@@ -25,6 +27,7 @@ GemHadar do
25
27
  development_dependency 'simplecov'
26
28
  development_dependency 'rspec'
27
29
  development_dependency 'monetize'
30
+ development_dependency 'utils'
28
31
  end
29
32
 
30
33
  task :default => :spec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.19.2
1
+ 0.19.3
@@ -1,23 +1,23 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: complex_config 0.19.2 ruby lib
2
+ # stub: complex_config 0.19.3 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "complex_config".freeze
6
- s.version = "0.19.2"
6
+ s.version = "0.19.3"
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 = "2021-10-28"
11
+ s.date = "2022-05-19"
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]
15
15
  s.extra_rdoc_files = ["README.md".freeze, "lib/complex_config.rb".freeze, "lib/complex_config/config.rb".freeze, "lib/complex_config/encryption.rb".freeze, "lib/complex_config/errors.rb".freeze, "lib/complex_config/key_source.rb".freeze, "lib/complex_config/plugins.rb".freeze, "lib/complex_config/plugins/enable.rb".freeze, "lib/complex_config/plugins/money.rb".freeze, "lib/complex_config/plugins/uri.rb".freeze, "lib/complex_config/provider.rb".freeze, "lib/complex_config/provider/shortcuts.rb".freeze, "lib/complex_config/proxy.rb".freeze, "lib/complex_config/railtie.rb".freeze, "lib/complex_config/rude.rb".freeze, "lib/complex_config/settings.rb".freeze, "lib/complex_config/shortcuts.rb".freeze, "lib/complex_config/version.rb".freeze]
16
- s.files = [".gitignore".freeze, ".rspec".freeze, ".tool-versions".freeze, ".travis.yml".freeze, ".utilsrc".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/complex_config".freeze, "complex_config.gemspec".freeze, "config/products.yml".freeze, "lib/complex_config.rb".freeze, "lib/complex_config/config.rb".freeze, "lib/complex_config/encryption.rb".freeze, "lib/complex_config/errors.rb".freeze, "lib/complex_config/key_source.rb".freeze, "lib/complex_config/plugins.rb".freeze, "lib/complex_config/plugins/enable.rb".freeze, "lib/complex_config/plugins/money.rb".freeze, "lib/complex_config/plugins/uri.rb".freeze, "lib/complex_config/provider.rb".freeze, "lib/complex_config/provider/shortcuts.rb".freeze, "lib/complex_config/proxy.rb".freeze, "lib/complex_config/railtie.rb".freeze, "lib/complex_config/rude.rb".freeze, "lib/complex_config/settings.rb".freeze, "lib/complex_config/shortcuts.rb".freeze, "lib/complex_config/version.rb".freeze, "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/config/broken_config.yml".freeze, "spec/config/config.yml".freeze, "spec/config/config_with_alias.yml".freeze, "spec/config/master.key".freeze, "spec/config/with-key-file.yml.enc".freeze, "spec/config/with-key-file.yml.key".freeze, "spec/config/without-key-file.yml.enc".freeze, "spec/spec_helper.rb".freeze]
16
+ s.files = [".all_images.yml".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/complex_config".freeze, "complex_config.gemspec".freeze, "config/products.yml".freeze, "lib/complex_config.rb".freeze, "lib/complex_config/config.rb".freeze, "lib/complex_config/encryption.rb".freeze, "lib/complex_config/errors.rb".freeze, "lib/complex_config/key_source.rb".freeze, "lib/complex_config/plugins.rb".freeze, "lib/complex_config/plugins/enable.rb".freeze, "lib/complex_config/plugins/money.rb".freeze, "lib/complex_config/plugins/uri.rb".freeze, "lib/complex_config/provider.rb".freeze, "lib/complex_config/provider/shortcuts.rb".freeze, "lib/complex_config/proxy.rb".freeze, "lib/complex_config/railtie.rb".freeze, "lib/complex_config/rude.rb".freeze, "lib/complex_config/settings.rb".freeze, "lib/complex_config/shortcuts.rb".freeze, "lib/complex_config/version.rb".freeze, "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/config/broken_config.yml".freeze, "spec/config/config.yml".freeze, "spec/config/config_with_alias.yml".freeze, "spec/config/master.key".freeze, "spec/config/with-key-file.yml.enc".freeze, "spec/config/with-key-file.yml.key".freeze, "spec/config/without-key-file.yml.enc".freeze, "spec/spec_helper.rb".freeze]
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.2.22".freeze
20
+ s.rubygems_version = "3.3.13".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
 
@@ -26,20 +26,22 @@ Gem::Specification.new do |s|
26
26
  end
27
27
 
28
28
  if s.respond_to? :add_runtime_dependency then
29
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
29
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.12.0"])
30
30
  s.add_development_dependency(%q<rake>.freeze, [">= 0"])
31
31
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
32
32
  s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
33
33
  s.add_development_dependency(%q<monetize>.freeze, [">= 0"])
34
+ s.add_development_dependency(%q<utils>.freeze, [">= 0"])
34
35
  s.add_runtime_dependency(%q<json>.freeze, [">= 0"])
35
36
  s.add_runtime_dependency(%q<tins>.freeze, [">= 0"])
36
37
  s.add_runtime_dependency(%q<mize>.freeze, ["~> 0.3", ">= 0.3.4"])
37
38
  else
38
- s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
39
+ s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.12.0"])
39
40
  s.add_dependency(%q<rake>.freeze, [">= 0"])
40
41
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
41
42
  s.add_dependency(%q<rspec>.freeze, [">= 0"])
42
43
  s.add_dependency(%q<monetize>.freeze, [">= 0"])
44
+ s.add_dependency(%q<utils>.freeze, [">= 0"])
43
45
  s.add_dependency(%q<json>.freeze, [">= 0"])
44
46
  s.add_dependency(%q<tins>.freeze, [">= 0"])
45
47
  s.add_dependency(%q<mize>.freeze, ["~> 0.3", ">= 0.3.4"])
@@ -1,5 +1,4 @@
1
1
  begin
2
- require 'forwardable' # XXX monetize forgets to require this
3
2
  require 'monetize'
4
3
  rescue LoadError
5
4
  if $DEBUG
@@ -118,8 +118,8 @@ class ComplexConfig::Settings < BasicObject
118
118
  to_h.to_yaml
119
119
  end
120
120
 
121
- def to_json
122
- to_h.to_json
121
+ def to_json(*a)
122
+ to_h.to_json(*a)
123
123
  end
124
124
 
125
125
  def size
@@ -1,6 +1,6 @@
1
1
  module ComplexConfig
2
2
  # ComplexConfig version
3
- VERSION = '0.19.2'
3
+ VERSION = '0.19.3'
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:
@@ -18,7 +18,7 @@ RSpec.describe ComplexConfig::Encryption do
18
18
  end
19
19
 
20
20
  it 'can encrypt' do
21
- expect(enc.encrypt(value)).to match /\A.+--.+--.+==\z/
21
+ expect(enc.encrypt(value)).to match(/\A.+--.+--.+==\z/)
22
22
  end
23
23
 
24
24
  it 'can decrypt' do
@@ -122,6 +122,10 @@ EOT
122
122
  EOT
123
123
  end
124
124
 
125
+ it 'can be converted into JSON' do
126
+ expect(settings.to_json).to eq '{"foo":{"bar":{"baz":true},"qux":"quux"}}'
127
+ end
128
+
125
129
  it 'raises exception if expected attribute is missing' do
126
130
  expect { settings.nix }.to raise_error(ComplexConfig::AttributeMissing)
127
131
  end
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.19.2
4
+ version: 0.19.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-28 00:00:00.000000000 Z
11
+ date: 2022-05-19 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.11.0
19
+ version: 1.12.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.11.0
26
+ version: 1.12.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ 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'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: json
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -153,11 +167,7 @@ extra_rdoc_files:
153
167
  - lib/complex_config/shortcuts.rb
154
168
  - lib/complex_config/version.rb
155
169
  files:
156
- - ".gitignore"
157
- - ".rspec"
158
- - ".tool-versions"
159
- - ".travis.yml"
160
- - ".utilsrc"
170
+ - ".all_images.yml"
161
171
  - COPYING
162
172
  - Gemfile
163
173
  - README.md
@@ -221,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
231
  - !ruby/object:Gem::Version
222
232
  version: '0'
223
233
  requirements: []
224
- rubygems_version: 3.2.22
234
+ rubygems_version: 3.3.13
225
235
  signing_key:
226
236
  specification_version: 4
227
237
  summary: configuration library
data/.gitignore DELETED
@@ -1,10 +0,0 @@
1
- .*.sw[pon]
2
- .AppleDouble
3
- .DS_Store
4
- .byebug_history
5
- .rvmrc
6
- Gemfile.lock
7
- coverage
8
- errors.lst
9
- pkg
10
- tags
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/.tool-versions DELETED
@@ -1 +0,0 @@
1
- ruby 3.0.2
data/.travis.yml DELETED
@@ -1,16 +0,0 @@
1
- rvm:
2
- - 2.1
3
- - 2.2
4
- - 2.3
5
- - 2.4
6
- - 2.5
7
- - 2.6
8
- - 2.7
9
- - 3.0
10
- - ruby-head
11
- - jruby-head
12
- sudo: false
13
- matrix:
14
- allow_failures:
15
- - rvm: ruby-head
16
- - rvm: jruby-head
data/.utilsrc DELETED
@@ -1,26 +0,0 @@
1
- # vim: set ft=ruby:
2
-
3
- search do
4
- prune_dirs /\A(\.svn|\.git|CVS|tmp|tags|coverage|pkg)\z/
5
- skip_files /(\A\.|\.sw[pon]\z|\.(log|fnm|jpg|jpeg|png|pdf|svg)\z|tags|~\z)/i
6
- end
7
-
8
- discover do
9
- prune_dirs /\A(\.svn|\.git|CVS|tmp|tags|coverage|pkg)\z/
10
- skip_files /(\A\.|\.sw[pon]\z|\.log\z|~\z)/
11
- binary false
12
- end
13
-
14
- strip_spaces do
15
- prune_dirs /\A(\..*|CVS|pkg)\z/
16
- skip_files /(\A\.|\.sw[pon]\z|\.log\z|~\z)/
17
- end
18
-
19
- probe do
20
- test_framework :rspec
21
- #include_dirs 'features'
22
- end
23
-
24
- ssh_tunnel do
25
- terminal_multiplexer :tmux
26
- end