class Rollbar::Configuration

Constants

DEFAULT_ENDPOINT
DEFAULT_WEB_BASE
SEND_EXTRA_FRAME_DATA_OPTIONS

Attributes

access_token[RW]
anonymize_user_ip[RW]
async_handler[RW]
async_json_payload[RW]
async_skip_report_handler[RW]
backtrace_cleaner[RW]
before_process[R]
branch[RW]
capture_uncaught[RW]
code_version[RW]
collect_user_ip[RW]
configured_options[RW]
custom_data_method[RW]
default_logger[RW]
delayed_job_enabled[RW]
disable_core_monkey_patch[RW]
disable_monkey_patch[RW]
disable_rack_monkey_patch[RW]
dj_threshold[RW]
enable_error_context[RW]
enabled[RW]
endpoint[RW]
environment[RW]
exception_level_filters[RW]
failover_handlers[RW]
filepath[RW]
files_processed_duration[RW]
files_processed_enabled[RW]
files_processed_size[RW]
files_with_pid_name_enabled[RW]
framework[RW]
host[RW]
ignore_internal_errors[RW]
ignored_person_ids[RW]
js_enabled[RW]
js_options[RW]
locals[RW]
log_payload[RW]
logger[W]
logger_level[R]
net_retries[RW]
open_timeout[RW]
payload_options[RW]
person_email_method[RW]
person_id_method[RW]
person_method[RW]
person_username_method[RW]
populate_empty_backtraces[RW]
project_gem_paths[R]
proxy[RW]
raise_on_error[RW]
randomize_scrub_length[RW]
report_dj_data[RW]
request_timeout[RW]
root[RW]
safely[RW]
safely?[RW]
scrub_fields[RW]
scrub_headers[RW]
scrub_password[RW]
scrub_user[RW]
scrub_whitelist[RW]
send_extra_frame_data[R]
sidekiq_threshold[RW]
sidekiq_use_scoped_block[RW]
transform[R]
transmit[RW]
uncaught_exception_level[RW]
use_async[RW]
use_eventmachine[R]
use_exception_level_filters_default[RW]
use_payload_access_token[RW]
user_ip_obfuscator_secret[RW]
user_ip_rack_env_key[RW]
verify_ssl_peer[RW]
web_base[RW]
write_to_file[RW]

Public Class Methods

new() click to toggle source
# File lib/rollbar/configuration.rb, line 89
def initialize
  @access_token = nil
  @async_handler = nil
  @before_process = []
  @branch = nil
  @capture_uncaught = nil
  @code_version = nil
  @custom_data_method = nil
  @default_logger = lambda { ::Logger.new($stderr) }
  @logger_level = :info
  @delayed_job_enabled = true
  @disable_monkey_patch = false
  @disable_core_monkey_patch = false
  @disable_rack_monkey_patch = false
  @enable_error_context = true
  @dj_threshold = 0
  @async_skip_report_handler = nil
  @enabled = nil # set to true when configure is called
  @endpoint = DEFAULT_ENDPOINT
  @environment = nil
  @exception_level_filters = {
    'ActiveRecord::RecordNotFound' => 'warning',
    'AbstractController::ActionNotFound' => 'warning',
    'ActionController::RoutingError' => 'warning'
  }
  @failover_handlers = []
  @framework = 'Plain'
  @ignore_internal_errors = [
    'Net::ReadTimeout',
    'Net::OpenTimeout',
    'SocketError'
  ]
  @ignored_person_ids = []
  @host = nil
  @payload_options = {}
  @person_method = 'current_user'
  @person_id_method = 'id'
  @person_username_method = nil
  @person_email_method = nil
  @project_gems = []
  @populate_empty_backtraces = false
  @report_dj_data = true
  @open_timeout = 3
  @request_timeout = 3
  @net_retries = 3
  @root = nil
  @js_enabled = false
  @js_options = {}
  @locals = {}
  @scrub_fields = [:passwd, :password, :password_confirmation, :secret,
                   :confirm_password, :password_confirmation, :secret_token,
                   :api_key, :access_token, :accessToken, :session_id]
  @scrub_user = true
  @scrub_password = true
  @randomize_scrub_length = false
  @scrub_whitelist = []
  @uncaught_exception_level = 'error'
  @scrub_headers = ['Authorization']
  @sidekiq_threshold = 0
  @sidekiq_use_scoped_block = false
  @safely = false
  @transform = []
  @use_async = false
  @async_json_payload = false
  @use_eventmachine = false
  @verify_ssl_peer = true
  @web_base = DEFAULT_WEB_BASE
  @send_extra_frame_data = :none
  @project_gem_paths = []
  @use_exception_level_filters_default = false
  @proxy = nil
  @raise_on_error = false
  @transmit = true
  @log_payload = false
  @collect_user_ip = true
  @anonymize_user_ip = false
  @user_ip_obfuscator_secret = nil
  @user_ip_rack_env_key = nil
  @backtrace_cleaner = nil
  @hooks = {
    :on_error_response => nil, # params: response
    :on_report_internal_error => nil # params: exception
  }

  @write_to_file = false
  @filepath = nil
  @files_with_pid_name_enabled = false
  @files_processed_enabled = false
  @files_processed_duration = 60
  @files_processed_size = 5 * 1000 * 1000
  @use_payload_access_token = false

  @configured_options = ConfiguredOptions.new(self)
end

Public Instance Methods

[](option) click to toggle source

allow params to be read like a hash

# File lib/rollbar/configuration.rb, line 337
def [](option)
  send(option)
end
before_process=(*handler) click to toggle source
# File lib/rollbar/configuration.rb, line 316
def before_process=(*handler)
  @before_process = Array(handler)
end
clone()
Also aliased as: original_clone
Alias for: wrapped_clone
execute_hook(symbol, *args) click to toggle source
# File lib/rollbar/configuration.rb, line 365
def execute_hook(symbol, *args)
  hook(symbol).call(*args) if hook(symbol).is_a?(Proc)
end
hook(symbol, &block) click to toggle source
# File lib/rollbar/configuration.rb, line 353
def hook(symbol, &block)
  unless @hooks.key?(symbol)
    raise StandardError, "Hook :#{symbol} is not supported by Rollbar SDK."
  end

  if block_given?
    @hooks[symbol] = block
  else
    @hooks[symbol]
  end
end
initialize_copy(orig) click to toggle source
Calls superclass method
# File lib/rollbar/configuration.rb, line 184
def initialize_copy(orig)
  super

  instance_variables.each do |var|
    instance_var = instance_variable_get(var)
    instance_variable_set(var, Rollbar::Util.deep_copy(instance_var))
  end
end
logger() click to toggle source
# File lib/rollbar/configuration.rb, line 349
def logger
  @logger ||= default_logger.call
end
logger_level=(level) click to toggle source
# File lib/rollbar/configuration.rb, line 341
def logger_level=(level)
  @logger_level = if level
                    level.to_sym
                  else
                    level
                  end
end
merge(options) click to toggle source
# File lib/rollbar/configuration.rb, line 202
def merge(options)
  new_configuration = clone
  new_configuration.merge!(options)

  new_configuration
end
merge!(options) click to toggle source
# File lib/rollbar/configuration.rb, line 209
def merge!(options)
  options.each do |name, value|
    variable_name = "@#{name}"
    next unless instance_variable_defined?(variable_name)

    instance_variable_set(variable_name, value)
  end

  self
end
original_clone()
Alias for: clone
project_gems=(gems) click to toggle source
# File lib/rollbar/configuration.rb, line 305
def project_gems=(gems)
  @project_gem_paths = gems.map do |name|
    found = Gem::Specification.each.select { |spec| name === spec.name }
    puts "[Rollbar] No gems found matching #{name.inspect}" if found.empty?
    found
  end
  @project_gem_paths.flatten!
  @project_gem_paths.uniq!
  @project_gem_paths.map!(&:gem_dir)
end
send_extra_frame_data=(value) click to toggle source
# File lib/rollbar/configuration.rb, line 324
def send_extra_frame_data=(value)
  unless SEND_EXTRA_FRAME_DATA_OPTIONS.include?(value)
    logger.warning(
      "Wrong 'send_extra_frame_data' value, :none, :app or :all is expected"
    )

    return
  end

  @send_extra_frame_data = value
end
transform=(*handler) click to toggle source
# File lib/rollbar/configuration.rb, line 320
def transform=(*handler)
  @transform = Array(handler)
end
use_active_job(options = {}) click to toggle source
# File lib/rollbar/configuration.rb, line 220
def use_active_job(options = {})
  require 'rollbar/delay/active_job'

  Rollbar::Delay::ActiveJob.queue_as(options[:queue] ||
  Rollbar::Delay::ActiveJob.default_queue_name)

  @use_async      = true
  @async_handler  = Rollbar::Delay::ActiveJob
end
use_delayed_job(options = {}) click to toggle source
# File lib/rollbar/configuration.rb, line 230
def use_delayed_job(options = {})
  require 'rollbar/delay/delayed_job'

  Rollbar::Delay::DelayedJob.queue = options[:queue] if options[:queue]

  @use_async      = true
  @async_handler  = Rollbar::Delay::DelayedJob
end
use_eventmachine=(value) click to toggle source
# File lib/rollbar/configuration.rb, line 300
def use_eventmachine=(value)
  require 'em-http-request' if value
  @use_eventmachine = value
end
use_resque(options = {}) click to toggle source
# File lib/rollbar/configuration.rb, line 245
def use_resque(options = {})
  require 'rollbar/delay/resque' if defined?(Resque)

  Rollbar::Delay::Resque::Job.queue = options[:queue] if options[:queue]

  @use_async      = true
  @async_handler  = Rollbar::Delay::Resque
end
use_shoryuken(options = {}) click to toggle source
# File lib/rollbar/configuration.rb, line 254
def use_shoryuken(options = {})
  require 'rollbar/delay/shoryuken' if defined?(Shoryuken)

  Rollbar::Delay::Shoryuken.queue = options[:queue] if options[:queue]

  @use_async      = true
  @async_handler  = Rollbar::Delay::Shoryuken
end
use_sidekiq(options = {}) click to toggle source
# File lib/rollbar/configuration.rb, line 239
def use_sidekiq(options = {})
  require 'rollbar/delay/sidekiq' if defined?(Sidekiq)
  @use_async      = true
  @async_handler  = Rollbar::Delay::Sidekiq.new(options)
end
use_sidekiq=(value) click to toggle source
# File lib/rollbar/configuration.rb, line 263
def use_sidekiq=(value)
  deprecation_message = '#use_sidekiq=(value) has been deprecated in favor ' \
    'of #use_sidekiq(options = {}). Please update your rollbar configuration.'
  if defined?(ActiveSupport)
    ActiveSupport::Deprecation.warn(deprecation_message)
  else
    puts(deprecation_message)
  end

  value.is_a?(Hash) ? use_sidekiq(value) : use_sidekiq
end
use_sucker_punch() click to toggle source
# File lib/rollbar/configuration.rb, line 282
def use_sucker_punch
  require 'rollbar/delay/sucker_punch' if defined?(SuckerPunch)
  @use_async      = true
  @async_handler  = Rollbar::Delay::SuckerPunch
end
use_sucker_punch=(_value) click to toggle source
# File lib/rollbar/configuration.rb, line 288
def use_sucker_punch=(_value)
  deprecation_message = '#use_sucker_punch=(value) has been deprecated in ' \
    'favor of #use_sucker_punch. Please update your rollbar configuration.'
  if defined?(ActiveSupport)
    ActiveSupport::Deprecation.warn(deprecation_message)
  else
    puts(deprecation_message)
  end

  use_sucker_punch
end
use_thread(options = {}) click to toggle source
# File lib/rollbar/configuration.rb, line 275
def use_thread(options = {})
  require 'rollbar/delay/thread'
  @use_async = true
  Rollbar::Delay::Thread.options = options
  @async_handler = Rollbar::Delay::Thread
end
wrapped_clone() click to toggle source
# File lib/rollbar/configuration.rb, line 193
def wrapped_clone
  original_clone.tap do |new_config|
    new_config.configured_options = ConfiguredOptions.new(new_config)
    new_config.configured_options.configured = configured_options.configured
  end
end
Also aliased as: clone