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
-
(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?
-
(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 = {})
-
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)
-
(Logger)
- the logger
def logger=(logger) @logger = logger || @logger end
def merge(config_hash)
-
(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?
-
(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