Class: Prefab::ConfigValueUnwrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/prefab/config_value_unwrapper.rb

Class Method Summary collapse

Class Method Details

.unwrap(config_value, config_key, context) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/prefab/config_value_unwrapper.rb', line 5

def self.unwrap(config_value, config_key, context)
  return nil unless config_value

  case config_value.type
  when :int, :string, :double, :bool, :log_level
    config_value.public_send(config_value.type)
  when :string_list
    config_value.string_list.values
  when :weighted_values
    value = Prefab::WeightedValueResolver.new(
      config_value.weighted_values.weighted_values,
      config_key,
      context[config_value.weighted_values.hash_by_property_name]
    ).resolve

    unwrap(value.value, config_key, context)
  else
    raise "Unknown type: #{config_value.type}"
  end
end