Module: Raven
- Extended by:
- Forwardable
- Defined in:
- lib/raven/backtrace.rb,
lib/raven/cli.rb,
lib/raven/base.rb,
lib/raven/error.rb,
lib/raven/event.rb,
lib/raven/client.rb,
lib/raven/logger.rb,
lib/raven/context.rb,
lib/raven/version.rb,
lib/raven/instance.rb,
lib/raven/linecache.rb,
lib/raven/processor.rb,
lib/raven/interfaces.rb,
lib/raven/transports.rb,
lib/raven/breadcrumbs.rb,
lib/raven/breadcrumbs.rb,
lib/raven/configuration.rb,
lib/raven/interfaces/http.rb,
lib/raven/transports/http.rb,
lib/raven/transports/dummy.rb,
lib/raven/utils/deep_merge.rb,
lib/raven/integrations/rack.rb,
lib/raven/processor/cookies.rb,
lib/raven/breadcrumbs/logger.rb,
lib/raven/integrations/rails.rb,
lib/raven/interfaces/message.rb,
lib/raven/processor/post_data.rb,
lib/raven/integrations/sidekiq.rb,
lib/raven/interfaces/exception.rb,
lib/raven/interfaces/stack_trace.rb,
lib/raven/processor/sanitizedata.rb,
lib/raven/processor/utf8conversion.rb,
lib/raven/breadcrumbs/activesupport.rb,
lib/raven/processor/removestacktrace.rb,
lib/raven/interfaces/single_exception.rb,
lib/raven/integrations/rails/active_job.rb,
lib/raven/processor/removecircularreferences.rb,
lib/raven/integrations/rails/controller_methods.rb,
lib/raven/integrations/rails/overrides/streaming_reporter.rb,
lib/raven/integrations/rails/overrides/debug_exceptions_catcher.rb
Overview
A much simpler source line cacher because linecache sucks at platform compat
Defined Under Namespace
Modules: ActiveSupportBreadcrumbs, BreadcrumbLogger, OldBreadcrumbLogger, RackInterface, Transports, Utils
Classes: Backtrace, Breadcrumb, BreadcrumbBuffer, CLI, Client, ClientState, Configuration, Context, Error, Event, ExceptionInterface, HttpInterface, Instance, Interface, LineCache, Logger, MessageInterface, Processor, Rack, Rails, Sidekiq, SingleExceptionInterface, StacktraceInterface
Constant Summary
collapse
- AVAILABLE_INTEGRATIONS =
%w[delayed_job railties sidekiq rack rake].freeze
- VERSION =
Freezing this constant breaks in 1.9.x
"1.2.1"
- INTERFACES =
TODO: a constant isn’t appropriate here, refactor
{}
Class Method Summary
collapse
Class Method Details
.find_interface(name) ⇒ Object
31
32
33
|
# File 'lib/raven/interfaces.rb', line 31
def self.find_interface(name)
INTERFACES[name.to_s]
end
|
.inject ⇒ Object
Injects various integrations. Default behavior: inject all available integrations
.inject_only(*only_integrations) ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/raven/base.rb', line 59
def inject_only(*only_integrations)
only_integrations = only_integrations.map(&:to_s)
integrations_to_load = Raven::AVAILABLE_INTEGRATIONS & only_integrations
not_found_integrations = only_integrations - integrations_to_load
if not_found_integrations.any?
self.logger.warn "Integrations do not exist: #{not_found_integrations.join ', '}"
end
integrations_to_load &= Gem.loaded_specs.keys
integrations_to_load.each do |integration|
load_integration(integration)
end
end
|
.inject_without(*exclude_integrations) ⇒ Object
54
55
56
57
|
# File 'lib/raven/base.rb', line 54
def inject_without(*exclude_integrations)
include_integrations = Raven::AVAILABLE_INTEGRATIONS - exclude_integrations.map(&:to_s)
inject_only(*include_integrations)
end
|
.instance ⇒ Object
31
32
33
|
# File 'lib/raven/base.rb', line 31
def instance
@instance ||= Raven::Instance.new
end
|
.load_integration(integration) ⇒ Object
76
77
78
79
80
|
# File 'lib/raven/base.rb', line 76
def load_integration(integration)
require "raven/integrations/#{integration}"
rescue Exception => error
self.logger.warn "Unable to load raven/integrations/#{integration}: #{error}"
end
|
.register_interface(mapping) ⇒ Object
24
25
26
27
28
29
|
# File 'lib/raven/interfaces.rb', line 24
def self.register_interface(mapping)
mapping.each_pair do |key, klass|
INTERFACES[key.to_s] = klass
INTERFACES[klass.name] = klass
end
end
|
.safely_prepend(module_name, opts = {}) ⇒ Object
82
83
84
85
86
87
88
89
|
# File 'lib/raven/base.rb', line 82
def safely_prepend(module_name, opts = {})
return if opts[:to].nil? || opts[:from].nil?
if opts[:to].respond_to?(:prepend, true)
opts[:to].send(:prepend, opts[:from].const_get(module_name))
else
opts[:to].send(:include, opts[:from].const_get("Old" + module_name))
end
end
|