Module: OopsieExceptions
- Defined in:
- lib/oopsie_exceptions/webhook_job.rb,
lib/oopsie_exceptions.rb,
lib/oopsie_exceptions/context.rb,
lib/oopsie_exceptions/payload.rb,
lib/oopsie_exceptions/railtie.rb,
lib/oopsie_exceptions/version.rb,
lib/oopsie_exceptions/middleware.rb,
lib/oopsie_exceptions/configuration.rb,
lib/oopsie_exceptions/webhook_client.rb,
lib/oopsie_exceptions/error_subscriber.rb,
lib/oopsie_exceptions/active_job_extension.rb,
lib/generators/oopsie_exceptions/install_generator.rb
Overview
Webhook delivery job. Loaded from the Railtie inside on_load(:active_job), so it’s only defined when the host app has ActiveJob available.
Inherits from ActiveJob::Base directly (not ApplicationJob) so the gem has zero hard dependencies on host-app code.
Defined Under Namespace
Modules: ActiveJobExtension, Context, Generators
Classes: Configuration, ErrorSubscriber, Middleware, Payload, Railtie, WebhookClient, WebhookJob
Constant Summary
collapse
- REPORTED_MARKER =
:@__oopsie_reported
- VERSION =
"1.1.1"
Class Method Summary
collapse
Class Method Details
.clear_context ⇒ Object
46
47
48
|
# File 'lib/oopsie_exceptions.rb', line 46
def clear_context
Context.clear
end
|
.configuration ⇒ Object
17
18
19
|
# File 'lib/oopsie_exceptions.rb', line 17
def configuration
@configuration ||= Configuration.new
end
|
21
22
23
|
# File 'lib/oopsie_exceptions.rb', line 21
def configure
yield configuration
end
|
.report(exception, context: {}, handled: true) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/oopsie_exceptions.rb', line 25
def report(exception, context: {}, handled: true)
return unless configuration.enabled
return if configuration.ignored?(exception)
return if exception.instance_variable_get(REPORTED_MARKER)
exception.instance_variable_set(REPORTED_MARKER, true)
payload = Payload.build(exception, context: context, handled: handled)
if configuration.before_notify
payload = configuration.before_notify.call(payload)
return if payload.nil?
end
deliver(payload)
end
|
.set_context(hash) ⇒ Object
42
43
44
|
# File 'lib/oopsie_exceptions.rb', line 42
def set_context(hash)
Context.merge(hash)
end
|
.with_context(hash) ⇒ Object