qonfig 0.16.0 → 0.17.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/.rubocop.yml +5 -1
- data/.travis.yml +6 -6
- data/CHANGELOG.md +17 -0
- data/README.md +630 -49
- data/gemfiles/with_external_deps.gemfile +2 -2
- data/lib/qonfig/commands/{add_nested_option.rb → definition/add_nested_option.rb} +1 -1
- data/lib/qonfig/commands/{add_option.rb → definition/add_option.rb} +1 -1
- data/lib/qonfig/commands/{compose.rb → definition/compose.rb} +1 -1
- data/lib/qonfig/commands/{expose_json.rb → definition/expose_json.rb} +1 -1
- data/lib/qonfig/commands/{expose_self.rb → definition/expose_self.rb} +1 -1
- data/lib/qonfig/commands/{expose_yaml.rb → definition/expose_yaml.rb} +1 -1
- data/lib/qonfig/commands/definition/load_from_env/value_converter.rb +82 -0
- data/lib/qonfig/commands/{load_from_env.rb → definition/load_from_env.rb} +1 -1
- data/lib/qonfig/commands/{load_from_json.rb → definition/load_from_json.rb} +1 -1
- data/lib/qonfig/commands/{load_from_self.rb → definition/load_from_self.rb} +1 -1
- data/lib/qonfig/commands/{load_from_yaml.rb → definition/load_from_yaml.rb} +1 -1
- data/lib/qonfig/commands/definition.rb +16 -0
- data/lib/qonfig/commands/instantiation/values_file.rb +171 -0
- data/lib/qonfig/commands/instantiation.rb +7 -0
- data/lib/qonfig/commands.rb +2 -10
- data/lib/qonfig/data_set/lock.rb +61 -4
- data/lib/qonfig/data_set.rb +151 -3
- data/lib/qonfig/dsl.rb +56 -16
- data/lib/qonfig/errors.rb +38 -11
- data/lib/qonfig/loaders/dynamic.rb +52 -0
- data/lib/qonfig/loaders/json.rb +6 -0
- data/lib/qonfig/loaders/yaml.rb +13 -0
- data/lib/qonfig/loaders.rb +3 -0
- data/lib/qonfig/plugins/toml/data_set.rb +13 -0
- data/lib/qonfig/plugins/toml/dsl.rb +6 -2
- data/lib/qonfig/plugins/toml/errors.rb +12 -0
- data/lib/qonfig/plugins/toml/loaders/dynamic.rb +31 -0
- data/lib/qonfig/plugins/toml/loaders/toml.rb +6 -0
- data/lib/qonfig/plugins/toml.rb +2 -0
- data/lib/qonfig/settings/builder.rb +1 -1
- data/lib/qonfig/settings.rb +21 -0
- data/lib/qonfig/validator/basic.rb +9 -1
- data/lib/qonfig/validator/builder/attribute_consistency.rb +29 -0
- data/lib/qonfig/validator/builder.rb +39 -14
- data/lib/qonfig/validator/dsl.rb +9 -1
- data/lib/qonfig/validator/method_based.rb +4 -2
- data/lib/qonfig/validator/predefined/common.rb +4 -2
- data/lib/qonfig/validator/predefined/registry.rb +0 -2
- data/lib/qonfig/validator/predefined/registry_control_mixin.rb +3 -2
- data/lib/qonfig/validator/proc_based.rb +4 -2
- data/lib/qonfig/version.rb +1 -1
- data/qonfig.gemspec +1 -1
- metadata +21 -15
- data/lib/qonfig/commands/load_from_env/value_converter.rb +0 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 985bd788cc637ab9a63a813e1a9a59510d4ea093c2d45101962fb28804688510
|
4
|
+
data.tar.gz: 39018ae2f6eedb1049736164f00bb34abffe64fa045858e3908054099e83b66a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51aa8022ab1a25cafc4dd68f740b2aa4edcc63e8b1c58aa95863c12ce288d6da74c177f764cfc5a829cb0d46bff1699afb4a87d1df93ea780c345ad0e452b9b2
|
7
|
+
data.tar.gz: 0d946fc7542ac3816bbf3e00f73a386e3178195bb2281a26d52e75c7b3bd57fe810213d8109c5d45db3d6713bfacb65603bc6373e593572a70d012ff3cea8c40
|
data/.rubocop.yml
CHANGED
@@ -4,7 +4,7 @@ inherit_gem:
|
|
4
4
|
- lib/rubocop.rspec.yml
|
5
5
|
|
6
6
|
AllCops:
|
7
|
-
TargetRubyVersion: 2.6.
|
7
|
+
TargetRubyVersion: 2.6.5
|
8
8
|
Include:
|
9
9
|
- lib/**/*.rb
|
10
10
|
- spec/**/*.rb
|
@@ -17,3 +17,7 @@ AllCops:
|
|
17
17
|
# NOTE: for code clarity in tests
|
18
18
|
RSpec/LeakyConstantDeclaration:
|
19
19
|
Enabled: false
|
20
|
+
|
21
|
+
# NOTE: support for old ruby versions
|
22
|
+
Style/RedundantBegin:
|
23
|
+
Enabled: false
|
data/.travis.yml
CHANGED
@@ -5,13 +5,13 @@ matrix:
|
|
5
5
|
- rvm: 2.3.8
|
6
6
|
gemfile: gemfiles/with_external_deps.gemfile
|
7
7
|
env: TEST_PLUGINS=true
|
8
|
-
- rvm: 2.4.
|
8
|
+
- rvm: 2.4.9
|
9
9
|
gemfile: gemfiles/with_external_deps.gemfile
|
10
10
|
env: TEST_PLUGINS=true
|
11
|
-
- rvm: 2.5.
|
11
|
+
- rvm: 2.5.7
|
12
12
|
gemfile: gemfiles/with_external_deps.gemfile
|
13
13
|
env: TEST_PLUGINS=true
|
14
|
-
- rvm: 2.6.
|
14
|
+
- rvm: 2.6.5
|
15
15
|
gemfile: gemfiles/with_external_deps.gemfile
|
16
16
|
env: TEST_PLUGINS=true
|
17
17
|
- rvm: ruby-head
|
@@ -22,11 +22,11 @@ matrix:
|
|
22
22
|
env: TEST_PLUGINS=true
|
23
23
|
- rvm: 2.3.8
|
24
24
|
gemfile: gemfiles/without_external_deps.gemfile
|
25
|
-
- rvm: 2.4.
|
25
|
+
- rvm: 2.4.9
|
26
26
|
gemfile: gemfiles/without_external_deps.gemfile
|
27
|
-
- rvm: 2.5.
|
27
|
+
- rvm: 2.5.7
|
28
28
|
gemfile: gemfiles/without_external_deps.gemfile
|
29
|
-
- rvm: 2.6.
|
29
|
+
- rvm: 2.6.5
|
30
30
|
gemfile: gemfiles/without_external_deps.gemfile
|
31
31
|
- rvm: ruby-head
|
32
32
|
gemfile: gemfiles/without_external_deps.gemfile
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,23 @@
|
|
1
1
|
# Changelog
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
+
## [Unreleased]
|
5
|
+
### Added
|
6
|
+
- Introduce `strict` validations: `strict: false` option ignores `nil` values and used by default;
|
7
|
+
- Setting's key existence check methods: `#key?(*key_path)`, `#setting?(*key_path)`, `#option?(*key_path)`;
|
8
|
+
- `#with(temporary_configurations = {}, &arbitary_code)` - run arbitary code with temporary settings;
|
9
|
+
- `TOML` plugin: support for TOML version 0.5.0;
|
10
|
+
- Introduce instance-level file loading methods that specifies a file with setting values for your defined settings:
|
11
|
+
- `.values_file` - define a file that will be used during instantiation process;
|
12
|
+
- `#load_from_file`, `#load_from_self`, `#load_from_yaml`, `#load_from_json`, `#load_from_toml` (toml plugin) -
|
13
|
+
instance methods for loading setting values on your config instance directly from a file;
|
14
|
+
|
15
|
+
### Changed
|
16
|
+
- `Qonfig::DataSet.build` now supports a Qonfig::DataSet-class attribute that should be inherited (`self` is used by default):
|
17
|
+
- new signature: `Qonfig::DataSet.build(base_config_klass = self, &config_class_definitions)`;
|
18
|
+
- Refacored DSL commands: introduce `Qonfig::Commands::Definition` commands and `Qonfig::Commands::Instantiation` commands;
|
19
|
+
- Updated runtime (`toml-rb` `1` -> `2`) and development dependencies;
|
20
|
+
|
4
21
|
## [0.16.0] - 2019-09-13
|
5
22
|
### Added
|
6
23
|
- `Qonfig::DataSet.build(&config_klass_definitions)` - build config instance immidietly without `Qonfig::DataSet`-class definition;
|