qonfig 0.19.0 → 0.19.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 +4 -4
- data/.travis.yml +0 -5
- data/CHANGELOG.md +7 -0
- data/README.md +19 -8
- data/lib/qonfig/data_set.rb +1 -1
- data/lib/qonfig/imports/export.rb +1 -1
- data/lib/qonfig/imports/general.rb +4 -4
- data/lib/qonfig/version.rb +1 -1
- data/qonfig.gemspec +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dab3b453c59fc8f9431ddeb3e0fb3cccd067947bf2275e94d2b75f8862e66c70
|
4
|
+
data.tar.gz: 7fb3387c500b3d9f738710ed5db17b3d594fffef048b06895498b8710b224257
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8317ded309d56239bbf763a4e72f6b0364981f6a2c87831f0dab396f9c9c2de61b8a062ec22f45b58a942731f46f0d171983e0f25cce2d07e2291f98049d8987
|
7
|
+
data.tar.gz: a06e95e78176a44c7de83548ee5e57f614442ecca6a42b681429cd26f4ef0489cf89ddfec716bf59b96bbd30d7a044a718a020bb9db98fcd5ee8d6f9a9629b86
|
data/.travis.yml
CHANGED
@@ -2,9 +2,6 @@ language: ruby
|
|
2
2
|
matrix:
|
3
3
|
fast_finish: true
|
4
4
|
include:
|
5
|
-
- rvm: 2.3.8
|
6
|
-
gemfile: gemfiles/with_external_deps.gemfile
|
7
|
-
env: TEST_PLUGINS=true
|
8
5
|
- rvm: 2.4.9
|
9
6
|
gemfile: gemfiles/with_external_deps.gemfile
|
10
7
|
env: TEST_PLUGINS=true
|
@@ -20,8 +17,6 @@ matrix:
|
|
20
17
|
- rvm: jruby-head
|
21
18
|
gemfile: gemfiles/with_external_deps.gemfile
|
22
19
|
env: TEST_PLUGINS=true
|
23
|
-
- rvm: 2.3.8
|
24
|
-
gemfile: gemfiles/without_external_deps.gemfile
|
25
20
|
- rvm: 2.4.9
|
26
21
|
gemfile: gemfiles/without_external_deps.gemfile
|
27
22
|
- rvm: 2.5.7
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
+
## [0.19.1] - 2019-11-29
|
5
|
+
### Changed
|
6
|
+
- Support for Ruby 2.3 has ended.
|
7
|
+
|
8
|
+
### Fixed
|
9
|
+
- Invalid default values for `#export_settings` method attributes (invalid `mappings:` value);
|
10
|
+
|
4
11
|
## [0.19.0] - 2019-11-26
|
5
12
|
### Added
|
6
13
|
- **FINALY**: support for dot-notation in `#key?`, `#option?`, `#setting?`, `#dig`, `#subset`, `#slice`, `#slice_value`, `[]`;
|
data/README.md
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
# Qonfig · [](https://badge.fury.io/rb/qonfig) [](https://travis-ci.org/0exp/qonfig) [](https://coveralls.io/github/0exp/qonfig?branch=master)
|
2
2
|
|
3
3
|
Config. Defined as a class. Used as an instance. Support for inheritance and composition.
|
4
|
-
Lazy instantiation. Thread-safe. Command-style DSL. Validation layer. **DOT-NOTATION**!
|
5
|
-
Support for **YAML**, **TOML**, **JSON**, **\_\_END\_\_**, **ENV**.
|
4
|
+
Lazy instantiation. Thread-safe. Command-style DSL. Validation layer. **DOT-NOTATION**! And pretty-print :) Support for **YAML**, **TOML**, **JSON**, **\_\_END\_\_**, **ENV**.
|
6
5
|
Extremely simple to define. Extremely simple to use. That's all? **NOT** :)
|
7
6
|
|
8
7
|
## Installation
|
@@ -939,11 +938,17 @@ config.settings.database.engine.driver? # => true (true => true)
|
|
939
938
|
|
940
939
|
### Setting key existence
|
941
940
|
|
942
|
-
-
|
941
|
+
- supports **dynamic array-like format** and **canonical dot-notation format**;
|
942
|
+
- returns `true` if the concrete key is exist;
|
943
|
+
- returns `false` if the concrete key does not exist;
|
944
|
+
- **dynamic array-like format**:
|
945
|
+
- `#key?(*key_path)` / `#option?(*key_path)` / `#setting?(*key_path)`;
|
943
946
|
- `*key_path` - an array of symbols and strings that represents a path to the concrete setting key;
|
944
947
|
- (for example, `config.key?(:credentials, :user)` tries to check that `config.settings.credentials.user` is exist);
|
945
|
-
|
946
|
-
-
|
948
|
+
- **dot-notation format**:
|
949
|
+
- `#key?(key)` / `#option?(key)` / `#setting?(key)`;
|
950
|
+
- `key` - string in dot-notated format
|
951
|
+
- (for example: `config.key?('credentials.user')` tries to check that `config.settings.crednetials.user` is exist);
|
947
952
|
|
948
953
|
```ruby
|
949
954
|
class Config < Qonfig::DataSet
|
@@ -955,15 +960,21 @@ end
|
|
955
960
|
|
956
961
|
config = Config.new
|
957
962
|
|
963
|
+
# --- array-like format ---
|
958
964
|
config.key?('credentials', 'user') # => true
|
959
965
|
config.key?('credentials', 'token') # => false (key does not exist)
|
960
966
|
|
967
|
+
# --- dot-notation format ---
|
968
|
+
config.key?('credentials.user') # => true
|
969
|
+
config.key?('credentials.token') # => false (key does not exist)
|
970
|
+
|
961
971
|
config.key?('credentials') # => true
|
962
972
|
config.key?('que_adapter') # => false (key does not exist)
|
963
973
|
|
964
974
|
# aliases
|
965
975
|
config.setting?('credentials') # => true
|
966
976
|
config.option?(:credentials, :password) # => true
|
977
|
+
config.option?('credentials.password') # => true
|
967
978
|
```
|
968
979
|
|
969
980
|
---
|
@@ -1148,7 +1159,7 @@ service.credentials # => { "account" => { "login" => "D@iVeR", "auth_token" => "
|
|
1148
1159
|
|
1149
1160
|
- all config objects can export their settings to an arbitrary object as singleton methods;
|
1150
1161
|
- (**IMPORTANT**) `export_settings` exports config settings as access methods to config's settings (creates `attr_reader`s for your config);
|
1151
|
-
- signature: `#
|
1162
|
+
- signature: `#export_settings(exportable_object, *setting_keys, mappings: {}, prefix: '', raw: false)`:
|
1152
1163
|
- `exportable_object` - an arbitrary object for exporting;
|
1153
1164
|
- `*setting_keys` - an array of dot-notaed config's setting keys that should be exported
|
1154
1165
|
(dot-notaed key is a key that describes each part of nested setting key as a string separated by `dot`-symbol);
|
@@ -1178,7 +1189,7 @@ service = ServiceObject.new
|
|
1178
1189
|
service.config_account # => NoMethodError
|
1179
1190
|
|
1180
1191
|
# NOTE: export settings as access methods to config's settings
|
1181
|
-
config.
|
1192
|
+
config.export_settings(service, 'web_api.credentials.account', prefix: 'config_')
|
1182
1193
|
|
1183
1194
|
service.config_account # => { "login" => "D@iVeR", "auth_token" => "IAdkoa0@()1239uA" }
|
1184
1195
|
```
|
@@ -2655,7 +2666,7 @@ Qonfig.enable(:pretty_print) # or Qonfig.enable('pretty_print')
|
|
2655
2666
|
Qonfig.load(:pretty_print) # or Qonfig.load('pretty_print')
|
2656
2667
|
```
|
2657
2668
|
|
2658
|
-
- show
|
2669
|
+
- show loaded plugins:
|
2659
2670
|
|
2660
2671
|
```ruby
|
2661
2672
|
Qonfig.loaded_plugins # => ["pretty_print"]
|
data/lib/qonfig/data_set.rb
CHANGED
@@ -409,7 +409,7 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
409
409
|
def export_settings(
|
410
410
|
exportable_object,
|
411
411
|
*exported_setting_keys,
|
412
|
-
mappings: Qonfig::Imports::
|
412
|
+
mappings: Qonfig::Imports::Mappings::EMPTY_MAPPINGS,
|
413
413
|
raw: false,
|
414
414
|
prefix: Qonfig::Imports::Abstract::EMPTY_PREFIX
|
415
415
|
)
|
@@ -18,7 +18,7 @@ module Qonfig::Imports::Export
|
|
18
18
|
exportable_object,
|
19
19
|
exported_config,
|
20
20
|
*exported_setting_keys,
|
21
|
-
mappings: Qonfig::Imports::
|
21
|
+
mappings: Qonfig::Imports::Mappings::EMPTY_MAPPINGS,
|
22
22
|
raw: false,
|
23
23
|
prefix: Qonfig::Imports::Abstract::EMPTY_PREFIX
|
24
24
|
)
|
@@ -18,8 +18,8 @@ class Qonfig::Imports::General
|
|
18
18
|
seeded_klass,
|
19
19
|
imported_config,
|
20
20
|
*imported_keys,
|
21
|
-
mappings: EMPTY_MAPPINGS,
|
22
|
-
prefix: EMPTY_PREFIX,
|
21
|
+
mappings: Qonfig::Imports::Mappings::EMPTY_MAPPINGS,
|
22
|
+
prefix: Qonfig::Imports::Abstract::EMPTY_PREFIX,
|
23
23
|
raw: false
|
24
24
|
)
|
25
25
|
new(
|
@@ -47,8 +47,8 @@ class Qonfig::Imports::General
|
|
47
47
|
seeded_klass,
|
48
48
|
imported_config,
|
49
49
|
*imported_keys,
|
50
|
-
mappings: EMPTY_MAPPINGS,
|
51
|
-
prefix: EMPTY_PREFIX,
|
50
|
+
mappings: Qonfig::Imports::Mappings::EMPTY_MAPPINGS,
|
51
|
+
prefix: Qonfig::Imports::Abstract::EMPTY_PREFIX,
|
52
52
|
raw: false
|
53
53
|
)
|
54
54
|
@seeded_klass = seeded_klass
|
data/lib/qonfig/version.rb
CHANGED
data/qonfig.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qonfig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.19.
|
4
|
+
version: 0.19.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rustam Ibragimov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coveralls
|
@@ -233,14 +233,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
233
|
requirements:
|
234
234
|
- - ">="
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: 2.
|
236
|
+
version: 2.4.9
|
237
237
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
238
|
requirements:
|
239
239
|
- - ">="
|
240
240
|
- !ruby/object:Gem::Version
|
241
241
|
version: '0'
|
242
242
|
requirements: []
|
243
|
-
|
243
|
+
rubyforge_project:
|
244
|
+
rubygems_version: 2.7.6
|
244
245
|
signing_key:
|
245
246
|
specification_version: 4
|
246
247
|
summary: Config object
|