qonfig 0.16.0 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- 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;
|