Sha256: 039698852d3438fd294aebd696d95da40b4ced085228da45f918b56ea3cc064b

Contents?: true

Size: 754 Bytes

Versions: 4

Compression:

Stored size: 754 Bytes

Contents

# frozen_string_literal: true

module Prefab
  class ConfigValueUnwrapper
    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.get(config_value.weighted_values.hash_by_property_name)
        ).resolve

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

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
prefab-cloud-ruby-0.24.5 lib/prefab/config_value_unwrapper.rb
prefab-cloud-ruby-0.24.4 lib/prefab/config_value_unwrapper.rb
prefab-cloud-ruby-0.24.3 lib/prefab/config_value_unwrapper.rb
prefab-cloud-ruby-0.24.2 lib/prefab/config_value_unwrapper.rb