module Qonfig::Commands::Definition::LoadFromENV::ValueConverter

@api private @since 0.2.0 rubocop:disable Style/RedundantFreeze, Performance/MethodObjectAsBlock

Constants

ARRAY_PATTERN

@return [Regexp]

@api private @since 0.2.0

FALSE_PATTERN

@return [Regexp]

@api private @since 0.2.0

FLOAT_PATTERN

@return [Regexp]

@api private @since 0.2.0

INTEGER_PATTERN

@return [Regexp]

@api private @since 0.2.0

QUOTED_STRING_PATTERN

@return [Regexp]

@api private @since 0.2.0

TRUE_PATTERN

@return [Regexp]

@api private @since 0.2.0

Public Class Methods

convert_values!(env_data) click to toggle source

@param env_data [Hash] @return [void]

@api private @since 0.2.0

# File lib/qonfig/commands/definition/load_from_env/value_converter.rb, line 49
def convert_values!(env_data)
  env_data.each_pair do |key, value|
    env_data[key] = convert_value(value)
  end
end

Private Class Methods

convert_value(value) click to toggle source

@param value [Object] @return [Object]

@api private @since 0.2.0

# File lib/qonfig/commands/definition/load_from_env/value_converter.rb, line 62
def convert_value(value)
  return value unless value.is_a?(String)

  case value
  when INTEGER_PATTERN
    Integer(value)
  when FLOAT_PATTERN
    Float(value)
  when TRUE_PATTERN
    true
  when FALSE_PATTERN
    false
  when ARRAY_PATTERN
    value.split(/\s*,\s*/).map(&method(:convert_value))
  when QUOTED_STRING_PATTERN
    value.gsub(/(\A['"]|['"]\z)/, '')
  else
    value
  end
end