qonfig 0.20.0 → 0.21.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/.travis.yml +6 -0
- data/CHANGELOG.md +29 -0
- data/README.md +318 -21
- data/Rakefile +1 -1
- data/lib/qonfig.rb +3 -0
- data/lib/qonfig/compacted.rb +98 -0
- data/lib/qonfig/compacted/constructor.rb +110 -0
- data/lib/qonfig/data_set.rb +83 -42
- data/lib/qonfig/data_set/class_builder.rb +0 -13
- data/lib/qonfig/dsl.rb +13 -7
- data/lib/qonfig/dsl/inheritance.rb +20 -0
- data/lib/qonfig/imports/abstract.rb +22 -1
- data/lib/qonfig/imports/direct_key.rb +25 -6
- data/lib/qonfig/imports/dsl.rb +6 -2
- data/lib/qonfig/imports/export.rb +17 -5
- data/lib/qonfig/imports/general.rb +48 -9
- data/lib/qonfig/imports/mappings.rb +23 -4
- data/lib/qonfig/loaders/basic.rb +1 -1
- data/lib/qonfig/plugins/pretty_print.rb +3 -0
- data/lib/qonfig/plugins/pretty_print/compacted.rb +9 -0
- data/lib/qonfig/plugins/pretty_print/data_set.rb +3 -2
- data/lib/qonfig/plugins/pretty_print/mixin.rb +74 -15
- data/lib/qonfig/plugins/pretty_print/settings.rb +9 -0
- data/lib/qonfig/plugins/toml/data_set.rb +4 -2
- data/lib/qonfig/settings.rb +28 -1
- data/lib/qonfig/settings/builder.rb +27 -3
- data/lib/qonfig/settings/callbacks.rb +2 -0
- data/lib/qonfig/settings/callbacks/validation.rb +30 -0
- data/lib/qonfig/settings/key_matcher.rb +8 -0
- data/lib/qonfig/version.rb +1 -1
- metadata +8 -2
data/Rakefile
CHANGED
@@ -3,11 +3,11 @@
|
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
require 'rubocop'
|
6
|
+
require 'rubocop/rake_task'
|
6
7
|
require 'rubocop-rails'
|
7
8
|
require 'rubocop-performance'
|
8
9
|
require 'rubocop-rspec'
|
9
10
|
require 'rubocop-rake'
|
10
|
-
require 'rubocop/rake_task'
|
11
11
|
|
12
12
|
RuboCop::RakeTask.new(:rubocop) do |t|
|
13
13
|
config_path = File.expand_path(File.join('.rubocop.yml'), __dir__)
|
data/lib/qonfig.rb
CHANGED
@@ -4,6 +4,8 @@ require 'yaml'
|
|
4
4
|
require 'json'
|
5
5
|
require 'erb'
|
6
6
|
|
7
|
+
# @api public
|
8
|
+
# @since 0.1.0
|
7
9
|
module Qonfig
|
8
10
|
require_relative 'qonfig/errors'
|
9
11
|
require_relative 'qonfig/loaders'
|
@@ -17,6 +19,7 @@ module Qonfig
|
|
17
19
|
require_relative 'qonfig/configurable'
|
18
20
|
require_relative 'qonfig/imports'
|
19
21
|
require_relative 'qonfig/plugins'
|
22
|
+
require_relative 'qonfig/compacted'
|
20
23
|
|
21
24
|
# @api public
|
22
25
|
# @since 0.4.0
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# @api public
|
4
|
+
# @since 0.21.0
|
5
|
+
class Qonfig::Compacted < BasicObject
|
6
|
+
require_relative 'compacted/constructor'
|
7
|
+
|
8
|
+
# @since 0.21.0
|
9
|
+
extend ::Qonfig::DSL
|
10
|
+
|
11
|
+
class << self
|
12
|
+
# @param base_config_klass [Class<Qonfig::Compacted>]
|
13
|
+
# @param config_klass_definitions [Block]
|
14
|
+
# @return [Qonfig::Compacted]
|
15
|
+
#
|
16
|
+
# @api public
|
17
|
+
# @since 0.21.0
|
18
|
+
def build(base_config_klass = self, &config_klass_definitions)
|
19
|
+
raise(
|
20
|
+
::Qonfig::ArgumentError,
|
21
|
+
'Base class should be a type of Qonfig::Compacted'
|
22
|
+
) unless base_config_klass <= ::Qonfig::Compacted
|
23
|
+
|
24
|
+
Class.new(base_config_klass, &config_klass_definitions).new
|
25
|
+
end
|
26
|
+
|
27
|
+
# @param data_set [Qonfig::DataSet]
|
28
|
+
# @param configurations [Block]
|
29
|
+
# @return [Qonfig::Compacted]
|
30
|
+
#
|
31
|
+
# @api public
|
32
|
+
# @since 0.21.0
|
33
|
+
def build_from(
|
34
|
+
data_set = ::Qonfig::Compacted::Constructor::NO_INITIAL_DATA_SET,
|
35
|
+
&configurations
|
36
|
+
)
|
37
|
+
compacted_config = allocate # NOTE: #tap does not exist on BasicObject :(
|
38
|
+
::Qonfig::Compacted::Constructor.construct(compacted_config, data_set, &configurations)
|
39
|
+
compacted_config
|
40
|
+
end
|
41
|
+
|
42
|
+
# @param settings_map [Hash<Symbol|String,Any>]
|
43
|
+
# @option init_from [NilClass, Qonfig::DataSet]
|
44
|
+
# @param configurations [Block]
|
45
|
+
# @return [Boolean]
|
46
|
+
#
|
47
|
+
# @api public
|
48
|
+
# @since 0.21.0
|
49
|
+
def valid_with?(settings_map = {}, &configurations)
|
50
|
+
new(settings_map, &configurations)
|
51
|
+
true
|
52
|
+
rescue ::Qonfig::ValidationError
|
53
|
+
false
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# @return [Qonfig::DataSet]
|
58
|
+
#
|
59
|
+
# @api private
|
60
|
+
# @since 0.21.0
|
61
|
+
attr_reader :____data_set____
|
62
|
+
|
63
|
+
# @param settings_map [Hash<Symbol|String,Any>]
|
64
|
+
# @param configuration [Block]
|
65
|
+
# @return [void]
|
66
|
+
#
|
67
|
+
# @see Qonfig::Compacted::Constructor
|
68
|
+
#
|
69
|
+
# @api public
|
70
|
+
# @since 0.21.0
|
71
|
+
def initialize(settings_map = {}, &configuration)
|
72
|
+
::Qonfig::Compacted::Constructor.construct(
|
73
|
+
self,
|
74
|
+
::Qonfig::Compacted::Constructor::NO_INITIAL_DATA_SET,
|
75
|
+
settings_map: settings_map,
|
76
|
+
&configuration
|
77
|
+
)
|
78
|
+
end
|
79
|
+
|
80
|
+
# @param key [String, Symbol]
|
81
|
+
# @return [Any]
|
82
|
+
#
|
83
|
+
# @api public
|
84
|
+
# @since 0.21.0
|
85
|
+
def [](key)
|
86
|
+
____data_set____[key]
|
87
|
+
end
|
88
|
+
|
89
|
+
# @param key [String, Symbol]
|
90
|
+
# @param value [Any]
|
91
|
+
# @return [void]
|
92
|
+
#
|
93
|
+
# @api public
|
94
|
+
# @since 0.21.0
|
95
|
+
def []=(key, value)
|
96
|
+
____data_set____[key] = value
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# @api private
|
4
|
+
# @since 0.21.0
|
5
|
+
module Qonfig::Compacted::Constructor
|
6
|
+
# @return [NilClass]
|
7
|
+
#
|
8
|
+
# @api private
|
9
|
+
# @since 0.21.0
|
10
|
+
NO_INITIAL_DATA_SET = nil
|
11
|
+
|
12
|
+
class << self
|
13
|
+
# @param compacted_config [Qonfig::Compacted]
|
14
|
+
# @param initial_data_set [NilClass, Qonfig::DataSet]
|
15
|
+
# Notice: cant define NO_INITIAL_DATA_SET (`nil`) as default value cuz Ruby will autoamtically
|
16
|
+
# transform any Qonfig::DataSet to Hash (thx for kwargs, Ruby >:()
|
17
|
+
# @option settings_map [Hash<String,Symbol|Any>]
|
18
|
+
# @param configuration [Block]
|
19
|
+
# @return [void]
|
20
|
+
#
|
21
|
+
# @api private
|
22
|
+
# @since 0.21.0
|
23
|
+
def construct(compacted_config, initial_data_set, settings_map: {}, &configuration)
|
24
|
+
prevent_incompatible_attributes!(compacted_config, initial_data_set)
|
25
|
+
|
26
|
+
if initial_data_set
|
27
|
+
construct_instance_from_data_set(
|
28
|
+
compacted_config,
|
29
|
+
initial_data_set,
|
30
|
+
settings_map,
|
31
|
+
&configuration
|
32
|
+
)
|
33
|
+
else
|
34
|
+
construct_isntance_from_commands(
|
35
|
+
compacted_config,
|
36
|
+
settings_map,
|
37
|
+
&configuration
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
# @param compacted_config [Qonfig::Compacted]
|
45
|
+
# @param initial_data_set [Qonfig::DataSet]
|
46
|
+
# @param settings_map [Hash<String,Symbol|Any>]
|
47
|
+
# @param configuration [Block]
|
48
|
+
# @return [void]
|
49
|
+
#
|
50
|
+
# @api private
|
51
|
+
# @since 0.21.0
|
52
|
+
def construct_instance_from_data_set(
|
53
|
+
compacted_config,
|
54
|
+
initial_data_set,
|
55
|
+
settings_map,
|
56
|
+
&configuration
|
57
|
+
)
|
58
|
+
compacted_config.instance_eval do
|
59
|
+
@____data_set____ = initial_data_set
|
60
|
+
@____data_set____.configure(settings_map, &configuration)
|
61
|
+
@____data_set____.export_settings(self, '*', accessor: true, raw: true)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# @param compacted_config [Qonfig::Compacted]
|
66
|
+
# @param settings_map [Hash<String,Symbol|Any>]
|
67
|
+
# @param configuration [Block]
|
68
|
+
# @return [void]
|
69
|
+
#
|
70
|
+
# @see #construct_instance_from_data_set
|
71
|
+
#
|
72
|
+
# @api private
|
73
|
+
# @since 0.21.0
|
74
|
+
def construct_isntance_from_commands(
|
75
|
+
compacted_config,
|
76
|
+
settings_map,
|
77
|
+
&configuration
|
78
|
+
)
|
79
|
+
compacted_config_klass = (class << compacted_config; self; end).superclass
|
80
|
+
target_data_set_klass = Class.new(Qonfig::DataSet)
|
81
|
+
Qonfig::DSL::Inheritance.inherit(base: compacted_config_klass, child: target_data_set_klass)
|
82
|
+
target_data_set = target_data_set_klass.new
|
83
|
+
|
84
|
+
construct_instance_from_data_set(
|
85
|
+
compacted_config,
|
86
|
+
target_data_set,
|
87
|
+
settings_map,
|
88
|
+
&configuration
|
89
|
+
)
|
90
|
+
end
|
91
|
+
|
92
|
+
# @param compacted_config [Qonfig::Compacted]
|
93
|
+
# @param initial_data_set [NilClass, Qonfig::DataSet]
|
94
|
+
# @return [void]
|
95
|
+
#
|
96
|
+
# @api private
|
97
|
+
# @since 0.21.0
|
98
|
+
def prevent_incompatible_attributes!(compacted_config, initial_data_set)
|
99
|
+
unless (class << compacted_config; self; end).superclass <= Qonfig::Compacted
|
100
|
+
# :nocov:
|
101
|
+
raise(Qonfig::ArgumentError, 'Compacted config should be a type of Qonfig::Compacted')
|
102
|
+
# :nocov:
|
103
|
+
end
|
104
|
+
|
105
|
+
unless initial_data_set.nil? || initial_data_set.is_a?(Qonfig::DataSet)
|
106
|
+
raise(Qonfig::ArgumentError, 'Initial config should be a type of Qonfig::DataSet')
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
data/lib/qonfig/data_set.rb
CHANGED
@@ -25,13 +25,25 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
25
25
|
Class.new(base_dataset_klass, &config_klass_definitions).new
|
26
26
|
end
|
27
27
|
|
28
|
-
# @param
|
28
|
+
# @param base_dataset_klass [Class<Qonfig::DataSet>]
|
29
|
+
# @param config_klass_definitions [Proc]
|
30
|
+
# @return [Qonfig::Compacted]
|
31
|
+
#
|
32
|
+
# @api public
|
33
|
+
# @since 0.21.0
|
34
|
+
def build_compacted(base_dataset_klass = self, &config_klass_definitions)
|
35
|
+
build(base_dataset_klass, &config_klass_definitions).compacted
|
36
|
+
end
|
37
|
+
|
38
|
+
# @param settings_map [Hash<Symbol|String,Any>]
|
39
|
+
# @param configurations [Block]
|
29
40
|
# @return [Boolean]
|
30
41
|
#
|
31
42
|
# @api public
|
32
43
|
# @since 0.19.0
|
33
|
-
|
34
|
-
|
44
|
+
# @version 0.21.0
|
45
|
+
def valid_with?(settings_map = {}, &configurations)
|
46
|
+
new(settings_map, &configurations)
|
35
47
|
true
|
36
48
|
rescue Qonfig::ValidationError
|
37
49
|
false
|
@@ -89,62 +101,79 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
89
101
|
# @option format [String, Symbol]
|
90
102
|
# @option strict [Boolean]
|
91
103
|
# @option expose [NilClass, String, Symbol] Environment key
|
104
|
+
# @param configurations [Block]
|
92
105
|
# @return [void]
|
93
106
|
#
|
94
107
|
# @see Qonfig::DataSet#load_setting_values_from_file
|
95
108
|
#
|
96
109
|
# @api public
|
97
110
|
# @since 0.17.0
|
98
|
-
|
111
|
+
# @version 0.21.0
|
112
|
+
def load_from_file(file_path, format: :dynamic, strict: true, expose: nil, &configurations)
|
99
113
|
thread_safe_access do
|
100
|
-
load_setting_values_from_file(
|
114
|
+
load_setting_values_from_file(
|
115
|
+
file_path, format: format, strict: strict, expose: expose, &configurations
|
116
|
+
)
|
101
117
|
end
|
102
118
|
end
|
103
119
|
|
104
120
|
# @param file_path [String]
|
105
121
|
# @option strict [Boolean]
|
106
122
|
# @option expose [NilClass, String, Symbol] Environment key
|
123
|
+
# @param configurations [Block]
|
107
124
|
# @return [void]
|
108
125
|
#
|
109
126
|
# @see Qonfig::DataSet#load_from_file
|
110
127
|
#
|
111
128
|
# @api public
|
112
129
|
# @since 0.17.0
|
113
|
-
|
114
|
-
|
130
|
+
# @version 0.21.0
|
131
|
+
def load_from_yaml(file_path, strict: true, expose: nil, &configurations)
|
132
|
+
load_from_file(file_path, format: :yml, strict: strict, expose: expose, &configurations)
|
115
133
|
end
|
116
134
|
|
117
135
|
# @param file_path [String]
|
118
136
|
# @option strict [Boolean]
|
119
137
|
# @option expose [NilClass, String, Symbol] Environment key
|
138
|
+
# @param configurations [Block]
|
120
139
|
# @return [void]
|
121
140
|
#
|
122
141
|
# @see Qonfig::DataSet#load_from_file
|
123
142
|
#
|
124
143
|
# @api public
|
125
144
|
# @since 0.17.0
|
126
|
-
|
127
|
-
|
145
|
+
# @version 0.21.0
|
146
|
+
def load_from_json(file_path, strict: true, expose: nil, &configurations)
|
147
|
+
load_from_file(file_path, format: :json, strict: strict, expose: expose, &configurations)
|
128
148
|
end
|
129
149
|
|
130
150
|
# @option format [String, Symbol]
|
131
151
|
# @option strict [Boolean]
|
132
152
|
# @option expose [NilClass, String, Symbol]
|
153
|
+
# @param configurations [Block]
|
133
154
|
# @return [void]
|
134
155
|
#
|
135
156
|
# @api public
|
136
157
|
# @since 0.17.0
|
137
|
-
|
138
|
-
|
158
|
+
# @version 0.21.0
|
159
|
+
def load_from_self(format: :dynamic, strict: true, expose: nil, &configurations)
|
160
|
+
caller_location = ::Kernel.caller(1, 1).first
|
139
161
|
|
140
162
|
thread_safe_access do
|
141
163
|
load_setting_values_from_file(
|
142
|
-
:self,
|
164
|
+
:self,
|
165
|
+
format: format,
|
166
|
+
strict: strict,
|
167
|
+
expose: expose,
|
168
|
+
caller_location: caller_location,
|
169
|
+
&configurations
|
143
170
|
)
|
144
171
|
end
|
145
172
|
end
|
146
173
|
|
147
174
|
# @param settings_map [Hash]
|
175
|
+
# @yield [cofnig]
|
176
|
+
# @yieldparam config [Qonfig::Settings]
|
148
177
|
# @return [void]
|
149
178
|
#
|
150
179
|
# @api public
|
@@ -222,6 +251,20 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
222
251
|
thread_safe_access { settings[key] }
|
223
252
|
end
|
224
253
|
|
254
|
+
# @param key [String, Symbol]
|
255
|
+
# @param value [Any]
|
256
|
+
# @return [void]
|
257
|
+
#
|
258
|
+
# @raise [Qonfig::UnknownSettingError]
|
259
|
+
# @raise [Qonfig::FrozenSettingsError]
|
260
|
+
# @raise [Qonfig::AmbiguousSettingValueError]
|
261
|
+
#
|
262
|
+
# @api public
|
263
|
+
# @since 0.21.0
|
264
|
+
def []=(key, value)
|
265
|
+
thread_safe_access { settings[key] = value }
|
266
|
+
end
|
267
|
+
|
225
268
|
# @param keys [Array<String, Symbol>]
|
226
269
|
# @return [Object]
|
227
270
|
#
|
@@ -312,21 +355,22 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
312
355
|
thread_safe_access { validator.valid? }
|
313
356
|
end
|
314
357
|
|
315
|
-
# @param
|
358
|
+
# @param settings_map [Hash<String,Symbol|Any>]
|
316
359
|
# @return [Boolean]
|
317
360
|
#
|
318
361
|
# @api public
|
319
362
|
# @since 0.19.0
|
320
|
-
|
363
|
+
# @version 0.21.0
|
364
|
+
def valid_with?(settings_map = {}, &configurations)
|
321
365
|
# NOTE:
|
322
|
-
# 'dup.configure(
|
366
|
+
# 'dup.configure(settings_map)' has better thread-safety than 'with(settings_map)'
|
323
367
|
# pros:
|
324
368
|
# - no arbitrary lock is obtained;
|
325
369
|
# - all threads can read and work :)
|
326
370
|
# cons:
|
327
371
|
# - useless ton of objects (new dataset, new settings, new locks, and etc);
|
328
372
|
# - useless setting options assignment steps (self.dup + self.to_h + configure(to_h))
|
329
|
-
dup.configure(configurations)
|
373
|
+
dup.configure(settings_map, &configurations)
|
330
374
|
true
|
331
375
|
rescue Qonfig::ValidationError
|
332
376
|
false
|
@@ -400,6 +444,7 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
400
444
|
# @option mappings [Hash<String|Symbol,String|Symbol>]
|
401
445
|
# @option raw [Boolean]
|
402
446
|
# @option prefix [String, Symbol]
|
447
|
+
# @option accessor [Boolean]
|
403
448
|
# @return [void]
|
404
449
|
#
|
405
450
|
# @api public
|
@@ -408,8 +453,9 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
408
453
|
exportable_object,
|
409
454
|
*exported_setting_keys,
|
410
455
|
mappings: Qonfig::Imports::Mappings::EMPTY_MAPPINGS,
|
411
|
-
raw:
|
412
|
-
prefix: Qonfig::Imports::Abstract::EMPTY_PREFIX
|
456
|
+
raw: Qonfig::Imports::Abstract::DEFAULT_RAW_BEHAVIOR,
|
457
|
+
prefix: Qonfig::Imports::Abstract::EMPTY_PREFIX,
|
458
|
+
accessor: Qonfig::Imports::Abstract::AS_ACCESSOR
|
413
459
|
)
|
414
460
|
thread_safe_access do
|
415
461
|
Qonfig::Imports::Export.export!(
|
@@ -418,11 +464,20 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
418
464
|
*exported_setting_keys,
|
419
465
|
prefix: prefix,
|
420
466
|
raw: raw,
|
421
|
-
mappings: mappings
|
467
|
+
mappings: mappings,
|
468
|
+
accessor: accessor
|
422
469
|
)
|
423
470
|
end
|
424
471
|
end
|
425
472
|
|
473
|
+
# @return [Qonfig::Compacted]
|
474
|
+
#
|
475
|
+
# @api public
|
476
|
+
# @since 0.21.0
|
477
|
+
def compacted
|
478
|
+
Qonfig::Compacted.build_from(self)
|
479
|
+
end
|
480
|
+
|
426
481
|
private
|
427
482
|
|
428
483
|
# @return [Qonfig::Validation::Validators::Composite]
|
@@ -432,26 +487,6 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
432
487
|
# @version 0.20.0
|
433
488
|
attr_reader :validator
|
434
489
|
|
435
|
-
# @return [void]
|
436
|
-
#
|
437
|
-
# @api private
|
438
|
-
# @since 0.2.0
|
439
|
-
# @version 0.19.0
|
440
|
-
def build_settings
|
441
|
-
@settings = Qonfig::Settings::Builder.build_definitions(self)
|
442
|
-
validator.validate!
|
443
|
-
Qonfig::Settings::Builder.build_state(self)
|
444
|
-
end
|
445
|
-
|
446
|
-
# @return [void]
|
447
|
-
#
|
448
|
-
# @api private
|
449
|
-
# @since 0.13.0
|
450
|
-
# @version 0.20.0
|
451
|
-
def build_validator
|
452
|
-
@validator = Qonfig::Validation::Validators::Composite.new(self)
|
453
|
-
end
|
454
|
-
|
455
490
|
# @param settings_map [Hash]
|
456
491
|
# @param configurations [Proc]
|
457
492
|
# @return [void]
|
@@ -469,9 +504,12 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
469
504
|
#
|
470
505
|
# @api private
|
471
506
|
# @since 0.2.0
|
507
|
+
# @version 0.21.0
|
472
508
|
def load!(settings_map = {}, &configurations)
|
473
|
-
|
474
|
-
|
509
|
+
Qonfig::Settings::Builder.build(self) do |settings, validator|
|
510
|
+
@settings = settings
|
511
|
+
@validator = validator
|
512
|
+
end
|
475
513
|
apply_settings(settings_map, &configurations)
|
476
514
|
end
|
477
515
|
|
@@ -480,6 +518,7 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
480
518
|
# @option strict [Boolean]
|
481
519
|
# @option expose [NilClass, String, Symbol]
|
482
520
|
# @option callcer_location [NilClass, String]
|
521
|
+
# @param configurations [Block]
|
483
522
|
# @return [void]
|
484
523
|
#
|
485
524
|
# @see Qonfig::Commands::Instantiation::ValuesFile
|
@@ -491,11 +530,13 @@ class Qonfig::DataSet # rubocop:disable Metrics/ClassLength
|
|
491
530
|
format: :dynamic,
|
492
531
|
strict: true,
|
493
532
|
expose: nil,
|
494
|
-
caller_location: nil
|
533
|
+
caller_location: nil,
|
534
|
+
&configurations
|
495
535
|
)
|
496
536
|
Qonfig::Commands::Instantiation::ValuesFile.new(
|
497
537
|
file_path, caller_location, format: format, strict: strict, expose: expose
|
498
538
|
).call(self, settings)
|
539
|
+
apply_settings(&configurations)
|
499
540
|
end
|
500
541
|
|
501
542
|
# @param instructions [Block]
|