module Honeybadger::Config::Env

def self.cast_value(value, type = String)

def self.cast_value(value, type = String)
  v = value.to_s
  if type == Boolean
    !!(v =~ /\A(true|t|1)\z/i)
  elsif type == Array
    v.split(ARRAY_VALUES).map(&method(:cast_value))
  elsif type == Integer
    v.to_i
  elsif type == Float
    v.to_f
  else
    v
  end
end

def self.new(env = ENV)

def self.new(env = ENV)
  hash = {}
  env.each_pair do |k,v|
    next unless k.match(CONFIG_KEY)
    next unless config_key = CONFIG_MAPPING[$1]
    type = OPTIONS[config_key][:type]
    next if IGNORED_TYPES.include?(type)
    hash[config_key] = cast_value(v, type)
  end
  hash
end