qonfig 0.19.0 → 0.19.1
Sign up to get free protection for your applications and to get access to all the features.
- 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 · [![Gem Version](https://badge.fury.io/rb/qonfig.svg)](https://badge.fury.io/rb/qonfig) [![Build Status](https://travis-ci.org/0exp/qonfig.svg?branch=master)](https://travis-ci.org/0exp/qonfig) [![Coverage Status](https://coveralls.io/repos/github/0exp/qonfig/badge.svg?branch=master)](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
|