Class: Qonfig::DataSet

Inherits:
Object
  • Object
show all
Extended by:
DSL, Validator::DSL
Defined in:
lib/qonfig/data_set.rb,
lib/qonfig/plugins/toml/data_set.rb

Overview

Since:

  • 0.12.0

Defined Under Namespace

Modules: ClassBuilder Classes: Lock

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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

Methods included from Validator::DSL

extended, validate, validators

Constructor Details

#initialize(settings_map = {}, &configurations) ⇒ DataSet

Returns a new instance of DataSet.

Parameters:

  • settings_map (Hash) (defaults to: {})
  • configurations (Proc)

Since:

  • 0.1.0



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

#settingsQonfig::Settings (readonly)

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.

Returns:

Since:

  • 0.1.0



30
31
32
# File 'lib/qonfig/data_set.rb', line 30

def settings
  @settings
end

Class Method Details

.build(&config_klass_definitions) ⇒ Qonfig::DataSet

Parameters:

  • config_klass_definitions (Proc)

Returns:

Since:

  • 0.16.0



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

Parameters:

  • key (String, Symbol)

Returns:

  • (Object)

Since:

  • 0.2.0



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.

Since:

  • 0.2.0



191
192
193
# File 'lib/qonfig/data_set.rb', line 191

def clear!
  thread_safe_access { settings.__clear__ }
end

#configure(settings_map = {}, &configurations) ⇒ void

This method returns an undefined value.

Parameters:

  • settings_map (Hash) (defaults to: {})

Since:

  • 0.1.0



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

Parameters:

  • block (Proc)

Yields:

  • (setting_key, setting_value)

Yield Parameters:

  • setting_key (String)
  • setting_value (Object)

Returns:

  • (Enumerable)

Since:

  • 0.13.0



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

Parameters:

  • keys (Array<String, Symbol>)

Returns:

  • (Object)

Since:

  • 0.2.0



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

Parameters:

  • block (Proc)

Yields:

  • (setting_key, setting_value)

Yield Parameters:

  • setting_key (String)
  • setting_value (Object)

Returns:

  • (Enumerable)

Since:

  • 0.13.0



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.

Since:

  • 0.1.0



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.

Since:

  • 0.2.0



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.

Parameters:

  • settings_map (Hash) (defaults to: {})
  • configurations (Proc)

Raises:

Since:

  • 0.2.0



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.

Parameters:

  • value_processor (Block)
  • path (Hash)

    a customizable set of options

  • options (Hash) (defaults to: Qonfig::Uploaders::JSON::DEFAULT_OPTIONS)

    a customizable set of options

Options Hash (path:):

  • (String)

Options Hash (options:):

  • Native (Hash<Symbol|String,Any>) — default: ruby-stdlib

    ::JSON#generate attributes

Since:

  • 0.11.0



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.

Parameters:

  • value_processor (Block)
  • path (Hash)

    a customizable set of options

  • options (Hash) (defaults to: Qonfig::Uploaders::TOML::DEFAULT_OPTIONS)

    a customizable set of options

Options Hash (path:):

  • (String)

Options Hash (options:):

  • Nothing, (Hash<Symbol,Any>)

    just for compatability and consistency

Since:

  • 0.12.0



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.

Parameters:

  • value_processor (Block)
  • path (Hash)

    a customizable set of options

  • symbolize_keys (Hash) (defaults to: false)

    a customizable set of options

  • options (Hash) (defaults to: Qonfig::Uploaders::YAML::DEFAULT_OPTIONS)

    a customizable set of options

Options Hash (path:):

  • (String)

Options Hash (symbolize_keys:):

  • (Boolean)

Options Hash (options:):

  • Native (Hash<Symbol|String,Any>) — default: ruby-stdlib

    ::YAML#dump attributes

Since:

  • 0.11.0



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

Parameters:

  • keys (Array<String, Symbol>)

Returns:

  • (Hash)

Since:

  • 0.9.0



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

Parameters:

  • keys (Array<String, Symbol>)

Returns:

  • (Hash, Any)

Since:

  • 0.10.0



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.

Parameters:

  • keys (Array<String, Symbol, Array<String, Symbol>>)

Returns:

  • (Hash)

Since:

  • 0.16.0



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

Parameters:

  • key_transformer (Hash) (defaults to: Qonfig::Settings::BASIC_SETTING_KEY_TRANSFORMER)

    a customizable set of options

  • value_transformer (Hash) (defaults to: Qonfig::Settings::BASIC_SETTING_VALUE_TRANSFORMER)

    a customizable set of options

Options Hash (key_transformer:):

  • (Proc)

Options Hash (value_transformer:):

  • (Proc)

Returns:

  • (Hash)

Since:

  • 0.1.0



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

Returns:

  • (Boolean)

Since:

  • 0.13.0



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.

Since:

  • 0.13.0



233
234
235
# File 'lib/qonfig/data_set.rb', line 233

def validate!
  thread_safe_access { validator.validate! }
end