class Raven::Configuration

Constants

IGNORE_DEFAULT

Attributes

app_dirs_pattern[RW]

Exceptions from these directories to be ignored

async[R]

Optional Proc to be used to send events asynchronously.

async?[R]

Optional Proc to be used to send events asynchronously.

catch_debugged_exceptions[RW]

Catch exceptions before they’re been processed by ActionDispatch::ShowExceptions or ActionDispatch::DebugExceptions

context_lines[RW]

Number of lines of code context to capture, or nil for none

current_environment[R]
encoding[R]

Encoding type for event bodies

environments[RW]

Whitelist of environments that will send notifications to Sentry

excluded_exceptions[RW]

Which exceptions should never be sent

host[RW]
http_adapter[RW]

The Faraday adapter to be used. Will default to Net::HTTP when not set.

json_adapter[RW]

DEPRECATED: This option is now ignored as we use our own adapter.

logger[RW]

Logger to use internally

open_timeout[RW]

Timeout waiting for the connection to open in seconds

path[RW]
port[RW]
processors[RW]

Processors to run on data before sending upstream

project_id[RW]

Project ID number to send to the Sentry server

project_root[RW]

Project directory root

public_key[RW]

Public key for authentication with the Sentry server

sanitize_fields[RW]

additional fields to sanitize

scheme[RW]

Accessors for the component parts of the DSN

secret_key[RW]

Secret key for authentication with the Sentry server

send_modules[RW]

Include module versions in reports?

server[R]

Simple server string (setter provided below)

server_name[RW]
should_send[RW]

Provide a configurable callback to block or send events

ssl[RW]

Ssl settings passed direactly to faraday’s ssl option

ssl_verification[RW]

Should the SSL certificate of the server be verified?

tags[RW]

Default tags for events

timeout[RW]

Timeout when waiting for the server to return data in seconds

Public Class Methods

new() click to toggle source
# File lib/raven/configuration.rb, line 97
def initialize
  self.server = ENV['SENTRY_DSN'] if ENV['SENTRY_DSN']
  @context_lines = 3
  self.current_environment = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'default'
  self.send_modules = true
  self.excluded_exceptions = IGNORE_DEFAULT
  self.processors = [Raven::Processor::RemoveCircularReferences, Raven::Processor::UTF8Conversion, Raven::Processor::SanitizeData]
  self.ssl_verification = false
  self.encoding = 'gzip'
  self.timeout = 1
  self.open_timeout = 1
  self.tags = {}
  self.async = false
  self.catch_debugged_exceptions = true
  self.sanitize_fields = []
end

Public Instance Methods

[](option) click to toggle source

Allows config options to be read like a hash

@param [Symbol] option Key for a given attribute

# File lib/raven/configuration.rb, line 153
def [](option)
  send(option)
end
async=(value) click to toggle source
# File lib/raven/configuration.rb, line 143
def async=(value)
  raise ArgumentError.new("async must be callable (or false to disable)") unless (value == false || value.respond_to?(:call))
  @async = value
end
current_environment=(environment) click to toggle source
# File lib/raven/configuration.rb, line 157
def current_environment=(environment)
  @current_environment = environment.to_s
end
dsn=(value)
Alias for: server=
encoding=(encoding) click to toggle source
# File lib/raven/configuration.rb, line 136
def encoding=(encoding)
  raise Error.new('Unsupported encoding') unless ['gzip', 'json'].include? encoding
  @encoding = encoding
end
log_excluded_environment_message() click to toggle source
# File lib/raven/configuration.rb, line 169
def log_excluded_environment_message
  Raven.logger.debug "Event not sent due to excluded environment: #{current_environment}"
end
send_in_current_environment?() click to toggle source
# File lib/raven/configuration.rb, line 161
def send_in_current_environment?
  if environments
    environments.include?(current_environment)
  else
    true
  end
end
server=(value) click to toggle source
# File lib/raven/configuration.rb, line 114
def server=(value)
  uri = URI.parse(value)
  uri_path = uri.path.split('/')

  if uri.user
    # DSN-style string
    @project_id = uri_path.pop
    @public_key = uri.user
    @secret_key = uri.password
  end

  @scheme = uri.scheme
  @host = uri.host
  @port = uri.port if uri.port
  @path = uri_path.join('/')

  # For anyone who wants to read the base server string
  @server = "#{@scheme}://#{@host}"
  @server << ":#{@port}" unless @port == { 'http' => 80, 'https' => 443 }[@scheme]
  @server << @path
end
Also aliased as: dsn=