Class: Smplkit::Config::ConfigEnvironment

Inherits:
Object
  • Object
show all
Defined in:
lib/smplkit/config/models.rb

Overview

Per-environment value overrides for a Config.

Read-only inspection container. Mutation is performed via Config‘s setters with environment: (e.g. cfg.set_string(“k”, “v”, environment: “production”)).

Instance Method Summary collapse

Constructor Details

#initialize(values: nil) ⇒ ConfigEnvironment

Returns a new instance of ConfigEnvironment.



45
46
47
48
49
50
51
52
# File 'lib/smplkit/config/models.rb', line 45

def initialize(values: nil)
  @values_raw = {}
  return unless values

  values.each do |k, v|
    @values_raw[k] = v.is_a?(Hash) && v.key?("value") ? v : { "value" => v }
  end
end

Instance Method Details

#_replace_raw(values) ⇒ Object



66
67
68
# File 'lib/smplkit/config/models.rb', line 66

def _replace_raw(values)
  @values_raw = values
end

#valuesObject

Returns overrides as a plain Hash { “key” => raw_value }.



55
56
57
# File 'lib/smplkit/config/models.rb', line 55

def values
  @values_raw.transform_values { |v| v["value"] }
end

#values_rawObject

Returns the full typed overrides { “key” => { “value” => v, “type” => t, “description” => d } } (read-only deep copy).



62
63
64
# File 'lib/smplkit/config/models.rb', line 62

def values_raw
  @values_raw.transform_values { |v| v.is_a?(Hash) ? v.dup : v }
end