class Appsignal::Config

def load_from_environment

def load_from_environment
  config = {}
  # Configuration with string type
  %w[APPSIGNAL_PUSH_API_KEY APPSIGNAL_APP_NAME APPSIGNAL_PUSH_API_ENDPOINT
     APPSIGNAL_FRONTEND_ERROR_CATCHING_PATH APPSIGNAL_HTTP_PROXY
     APPSIGNAL_LOG APPSIGNAL_LOG_PATH APPSIGNAL_WORKING_DIR_PATH
     APPSIGNAL_HOSTNAME APPSIGNAL_CA_FILE_PATH APP_REVISION].each do |var|
    env_var = ENV[var]
    next unless env_var
    config[ENV_TO_KEY_MAPPING[var]] = env_var
  end
  # Configuration with boolean type
  %w[APPSIGNAL_ACTIVE APPSIGNAL_DEBUG APPSIGNAL_INSTRUMENT_NET_HTTP
     APPSIGNAL_INSTRUMENT_REDIS APPSIGNAL_INSTRUMENT_SEQUEL
     APPSIGNAL_SKIP_SESSION_DATA APPSIGNAL_ENABLE_FRONTEND_ERROR_CATCHING
     APPSIGNAL_ENABLE_ALLOCATION_TRACKING APPSIGNAL_ENABLE_GC_INSTRUMENTATION
     APPSIGNAL_RUNNING_IN_CONTAINER APPSIGNAL_ENABLE_HOST_METRICS
     APPSIGNAL_SEND_PARAMS APPSIGNAL_ENABLE_MINUTELY_PROBES
     APPSIGNAL_FILES_WORLD_ACCESSIBLE].each do |var|
    env_var = ENV[var]
    next unless env_var
    config[ENV_TO_KEY_MAPPING[var]] = env_var.casecmp("true").zero?
  end
  # Configuration with array of strings type
  %w[APPSIGNAL_IGNORE_ACTIONS APPSIGNAL_IGNORE_ERRORS
     APPSIGNAL_IGNORE_NAMESPACES APPSIGNAL_FILTER_PARAMETERS
     APPSIGNAL_FILTER_SESSION_DATA APPSIGNAL_REQUEST_HEADERS].each do |var|
    env_var = ENV[var]
    next unless env_var
    config[ENV_TO_KEY_MAPPING[var]] = env_var.split(",")
  end
  config
end