class Airbrake::Config

@since v1.0.0
@api private
can use to configure an Airbrake instance.
Represents the Airbrake config. A config contains all the options that you
#

def endpoint

Returns:
  • (URI) - the endpoint address
def endpoint
  @endpoint ||=
    begin
      self.host = ('https://' << host) if host !~ %r{\Ahttps?://}
      api = "api/v3/projects/#{project_id}/notices"
      URI.join(host, api)
    end
end

def ignored_environment?

Returns:
  • (Boolean) - true if the config ignores current environment, false
def ignored_environment?
  if ignore_environments.any? && environment.nil?
    logger.warn("#{LOG_LABEL} the 'environment' option is not set, " \
                "'ignore_environments' has no effect")
  end
  env = environment.to_s
  ignore_environments.any? do |pattern|
    if pattern.is_a?(Regexp)
      env.match(pattern)
    else
      env == pattern.to_s
    end
  end
end

def initialize(user_config = {})

Parameters:
  • user_config (Hash{Symbol=>Object}) -- the hash to be used to build the
def initialize(user_config = {})
  @validator = Config::Validator.new(self)
  self.proxy = {}
  self.queue_size = 100
  self.workers = 1
  self.code_hunks = true
  self.logger = Logger.new(STDOUT)
  logger.level = Logger::WARN
  self.project_id = user_config[:project_id]
  self.project_key = user_config[:project_key]
  self.host = 'https://airbrake.io'
  self.ignore_environments = []
  self.timeout = user_config[:timeout]
  self.blacklist_keys = []
  self.whitelist_keys = []
  self.root_directory = File.realpath(
    (defined?(Bundler) && Bundler.root) ||
    Dir.pwd
  )
  merge(user_config)
end

def logger=(logger)

Returns:
  • (Logger) - the logger
def logger=(logger)
  @logger = logger || @logger
end

def merge(config_hash)

Returns:
  • (self) - the merged config
def merge(config_hash)
  config_hash.each_pair { |option, value| set_option(option, value) }
  self
end

def set_option(option, value)

def set_option(option, value)
  __send__("#{option}=", value)
rescue NoMethodError
  raise Airbrake::Error, "unknown option '#{option}'"
end

def valid?

Returns:
  • (Boolean) - true if the config meets the requirements, false
def valid?
  return true if ignored_environment?
  return false unless @validator.valid_project_id?
  return false unless @validator.valid_project_key?
  return false unless @validator.valid_environment?
  true
end

def validation_error_message

def validation_error_message
  @validator.error_message
end