Class: Qonfig::DataSet
- Inherits:
-
Object
show all
- Extended by:
- DSL, Validator::DSL
- Defined in:
- lib/qonfig/data_set.rb,
lib/qonfig/plugins/toml/data_set.rb
Overview
Defined Under Namespace
Modules: ClassBuilder
Classes: Lock
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
-
#[](key) ⇒ Object
-
#clear! ⇒ void
-
#configure(settings_map = {}, &configurations) ⇒ void
-
#deep_each_setting(&block) {|setting_key, setting_value| ... } ⇒ Enumerable
-
#dig(*keys) ⇒ Object
-
#each_setting(&block) {|setting_key, setting_value| ... } ⇒ Enumerable
-
#freeze! ⇒ void
-
#frozen? ⇒ void
-
#initialize(settings_map = {}, &configurations) ⇒ DataSet
constructor
A new instance of DataSet.
-
#reload!(settings_map = {}, &configurations) ⇒ void
-
#save_to_json(path:, options: Qonfig::Uploaders::JSON::DEFAULT_OPTIONS, &value_processor) ⇒ void
(also: #dump_to_json)
-
#save_to_toml(path:, options: Qonfig::Uploaders::TOML::DEFAULT_OPTIONS, &value_processor) ⇒ void
(also: #dump_to_toml)
-
#save_to_yaml(path:, symbolize_keys: false, options: Qonfig::Uploaders::YAML::DEFAULT_OPTIONS, &value_processor) ⇒ void
(also: #dump_to_yaml)
-
#slice(*keys) ⇒ Hash
-
#slice_value(*keys) ⇒ Hash, Any
-
#subset(*keys) ⇒ Hash
private
-
#to_h(key_transformer: Qonfig::Settings::BASIC_SETTING_KEY_TRANSFORMER, value_transformer: Qonfig::Settings::BASIC_SETTING_VALUE_TRANSFORMER) ⇒ Hash
(also: #to_hash)
-
#valid? ⇒ Boolean
-
#validate! ⇒ void
Methods included from DSL
commands, compose, expose_json, expose_self, expose_toml, expose_yaml, extended, load_from_env, load_from_json, load_from_self, load_from_toml, load_from_yaml, setting
extended, validate, validators
Constructor Details
#initialize(settings_map = {}, &configurations) ⇒ DataSet
Returns a new instance of DataSet.
37
38
39
40
|
# File 'lib/qonfig/data_set.rb', line 37
def initialize(settings_map = {}, &configurations)
@__lock__ = Qonfig::DataSet::Lock.new
thread_safe_definition { load!(settings_map, &configurations) }
end
|
Instance Attribute Details
This method is part of a private API.
You should avoid using this method if possible, as it may be removed or be changed in the future.
30
31
32
|
# File 'lib/qonfig/data_set.rb', line 30
def settings
@settings
end
|
Class Method Details
.build(&config_klass_definitions) ⇒ Qonfig::DataSet
21
22
23
|
# File 'lib/qonfig/data_set.rb', line 21
def build(&config_klass_definitions)
Class.new(self, &config_klass_definitions).new
end
|
Instance Method Details
#[](key) ⇒ Object
147
148
149
|
# File 'lib/qonfig/data_set.rb', line 147
def [](key)
thread_safe_access { settings[key] }
end
|
#clear! ⇒ void
This method returns an undefined value.
191
192
193
|
# File 'lib/qonfig/data_set.rb', line 191
def clear!
thread_safe_access { settings.__clear__ }
end
|
This method returns an undefined value.
78
79
80
81
82
|
# File 'lib/qonfig/data_set.rb', line 78
def configure(settings_map = {}, &configurations)
thread_safe_access do
apply_settings(settings_map, &configurations)
end
end
|
#deep_each_setting(&block) {|setting_key, setting_value| ... } ⇒ Enumerable
217
218
219
|
# File 'lib/qonfig/data_set.rb', line 217
def deep_each_setting(&block)
thread_safe_access { settings.__deep_each_setting__(&block) }
end
|
#dig(*keys) ⇒ Object
156
157
158
|
# File 'lib/qonfig/data_set.rb', line 156
def dig(*keys)
thread_safe_access { settings.__dig__(*keys) }
end
|
#each_setting(&block) {|setting_key, setting_value| ... } ⇒ Enumerable
204
205
206
|
# File 'lib/qonfig/data_set.rb', line 204
def each_setting(&block)
thread_safe_access { settings.__each_setting__(&block) }
end
|
#freeze! ⇒ void
This method returns an undefined value.
46
47
48
|
# File 'lib/qonfig/data_set.rb', line 46
def freeze!
thread_safe_access { settings.__freeze__ }
end
|
#frozen? ⇒ void
This method returns an undefined value.
54
55
56
|
# File 'lib/qonfig/data_set.rb', line 54
def frozen?
thread_safe_access { settings.__is_frozen__ }
end
|
#reload!(settings_map = {}, &configurations) ⇒ void
This method returns an undefined value.
66
67
68
69
70
71
|
# File 'lib/qonfig/data_set.rb', line 66
def reload!(settings_map = {}, &configurations)
thread_safe_definition do
raise Qonfig::FrozenSettingsError, 'Frozen config can not be reloaded' if frozen?
load!(settings_map, &configurations)
end
end
|
#save_to_json(path:, options: Qonfig::Uploaders::JSON::DEFAULT_OPTIONS, &value_processor) ⇒ void
Also known as:
dump_to_json
This method returns an undefined value.
110
111
112
113
114
|
# File 'lib/qonfig/data_set.rb', line 110
def save_to_json(path:, options: Qonfig::Uploaders::JSON::DEFAULT_OPTIONS, &value_processor)
thread_safe_access do
Qonfig::Uploaders::JSON.upload(settings, path: path, options: options, &value_processor)
end
end
|
#save_to_toml(path:, options: Qonfig::Uploaders::TOML::DEFAULT_OPTIONS, &value_processor) ⇒ void
Also known as:
dump_to_toml
This method returns an undefined value.
13
14
15
16
17
|
# File 'lib/qonfig/plugins/toml/data_set.rb', line 13
def save_to_toml(path:, options: Qonfig::Uploaders::TOML::DEFAULT_OPTIONS, &value_processor)
thread_safe_access do
Qonfig::Uploaders::TOML.upload(settings, path: path, options: options, &value_processor)
end
end
|
#save_to_yaml(path:, symbolize_keys: false, options: Qonfig::Uploaders::YAML::DEFAULT_OPTIONS, &value_processor) ⇒ void
Also known as:
dump_to_yaml
This method returns an undefined value.
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
# File 'lib/qonfig/data_set.rb', line 125
def save_to_yaml(
path:,
symbolize_keys: false,
options: Qonfig::Uploaders::YAML::DEFAULT_OPTIONS,
&value_processor
)
thread_safe_access do
Qonfig::Uploaders::YAML.upload(
settings,
path: path,
options: options.merge(symbolize_keys: symbolize_keys),
&value_processor
)
end
end
|
#slice(*keys) ⇒ Hash
165
166
167
|
# File 'lib/qonfig/data_set.rb', line 165
def slice(*keys)
thread_safe_access { settings.__slice__(*keys) }
end
|
#slice_value(*keys) ⇒ Hash, Any
174
175
176
|
# File 'lib/qonfig/data_set.rb', line 174
def slice_value(*keys)
thread_safe_access { settings.__slice_value__(*keys) }
end
|
#subset(*keys) ⇒ Hash
This method is part of a private API.
You should avoid using this method if possible, as it may be removed or be changed in the future.
183
184
185
|
# File 'lib/qonfig/data_set.rb', line 183
def subset(*keys)
thread_safe_access { settings.__subset__(*keys) }
end
|
#to_h(key_transformer: Qonfig::Settings::BASIC_SETTING_KEY_TRANSFORMER, value_transformer: Qonfig::Settings::BASIC_SETTING_VALUE_TRANSFORMER) ⇒ Hash
Also known as:
to_hash
90
91
92
93
94
95
96
97
98
99
100
|
# File 'lib/qonfig/data_set.rb', line 90
def to_h(
key_transformer: Qonfig::Settings::BASIC_SETTING_KEY_TRANSFORMER,
value_transformer: Qonfig::Settings::BASIC_SETTING_VALUE_TRANSFORMER
)
thread_safe_access do
settings.__to_hash__(
transform_key: key_transformer,
transform_value: value_transformer
)
end
end
|
#valid? ⇒ Boolean
225
226
227
|
# File 'lib/qonfig/data_set.rb', line 225
def valid?
thread_safe_access { validator.valid? }
end
|
#validate! ⇒ void
This method returns an undefined value.
233
234
235
|
# File 'lib/qonfig/data_set.rb', line 233
def validate!
thread_safe_access { validator.validate! }
end
|