Module: Raygun

Extended by:
Testable
Defined in:
lib/raygun/sidekiq.rb,
lib/raygun.rb,
lib/raygun/error.rb,
lib/raygun/client.rb,
lib/raygun/version.rb,
lib/raygun/testable.rb,
lib/raygun/affected_user.rb,
lib/raygun/configuration.rb,
lib/generators/raygun/install_generator.rb,
lib/raygun/middleware/rack_exception_interceptor.rb,
lib/raygun/middleware/rails_insert_affected_user.rb,
lib/raygun/services/apply_whitelist_filter_to_payload.rb

Overview

Defined Under Namespace

Modules: Middleware, Services, Testable Classes: AffectedUser, Client, Configuration, Error, InstallGenerator, ItWorksException, Railtie, SidekiqMiddleware, SidekiqReporter

Constant Summary collapse

CLIENT_URL =

used to identify ourselves to Raygun

"https://github.com/MindscapeHQ/raygun4ruby"
CLIENT_NAME =
"Raygun4Ruby Gem"
VERSION =
"1.3.0"

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from Testable

track_test_exception

Class Attribute Details

.configurationObject



40
41
42
# File 'lib/raygun.rb', line 40

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configured?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/raygun.rb', line 48

def configured?
  !!configuration.api_key
end

.default_configurationObject



44
45
46
# File 'lib/raygun.rb', line 44

def default_configuration
  configuration.defaults
end

.deprecation_warning(message) ⇒ Object



89
90
91
92
93
94
95
# File 'lib/raygun.rb', line 89

def deprecation_warning(message)
  if defined?(ActiveSupport::Deprecation)
    ActiveSupport::Deprecation.warn(message)
  else
    puts message
  end
end

.failsafe_log(message) ⇒ Object



85
86
87
# File 'lib/raygun.rb', line 85

def failsafe_log(message)
  configuration.failsafe_logger.info(message)
end

.log(message) ⇒ Object



81
82
83
# File 'lib/raygun.rb', line 81

def log(message)
  configuration.logger.info(message) if configuration.logger
end

.setup {|configuration| ... } ⇒ Object

Yields:



36
37
38
# File 'lib/raygun.rb', line 36

def setup
  yield(configuration)
end

.track_exception(exception_instance, env = {}, user = nil, retry_count = 1) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/raygun.rb', line 52

def track_exception(exception_instance, env = {}, user = nil, retry_count = 1)
  if should_report?(exception_instance)
    log("[Raygun] Tracking Exception...")
    Client.new.track_exception(exception_instance, env, user)
  end
rescue Exception => e
  if configuration.failsafe_logger
    failsafe_log("Problem reporting exception to Raygun: #{e.class}: #{e.message}\n\n#{e.backtrace.join("\n")}")
  end

  if retry_count > 0
    new_exception = e.exception("raygun4ruby encountered an exception processing your exception")
    new_exception.set_backtrace(e.backtrace)

    env[:custom_data] ||= {}
    env[:custom_data].merge!(original_stacktrace: exception_instance.backtrace)

    track_exception(new_exception, env, user, retry_count - 1)
  else
    raise e
  end
end

.track_exceptionsObject



75
76
77
78
79
# File 'lib/raygun.rb', line 75

def track_exceptions
  yield
rescue => e
  track_exception(e)
end