Skip to content

Commit 3ae1365

Browse files
committed
Only extend ActiveJob when it's defined
It's somewhat common for Rails users to exclude ActiveJob by manually requiring every other components when they don't need it. So we should detect if the ActiveJob constant is defined before extending it.
1 parent 38b3891 commit 3ae1365

3 files changed

Lines changed: 4 additions & 4 deletions

File tree

sentry-rails/lib/sentry/rails/railtie.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
require "sentry/rails/backtrace_cleaner"
55
require "sentry/rails/controller_methods"
66
require "sentry/rails/controller_transaction"
7-
require "sentry/rails/active_job"
87
require "sentry/rails/overrides/streaming_reporter"
98

109
module Sentry
@@ -22,7 +21,7 @@ class Railtie < ::Rails::Railtie
2221

2322
configure_sentry_logger
2423
extend_controller_methods
25-
extend_active_job
24+
extend_active_job if defined?(ActiveJob)
2625
override_streaming_reporter
2726
setup_backtrace_cleanup_callback
2827
inject_breadcrumbs_logger
@@ -34,6 +33,7 @@ def configure_sentry_logger
3433
end
3534

3635
def extend_active_job
36+
require "sentry/rails/active_job"
3737
ActiveJob::Base.send(:prepend, Sentry::Rails::ActiveJobExtensions)
3838
end
3939

sentry-rails/spec/sentry/rails/activejob_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
require "spec_helper"
2+
require "active_job/railtie"
23

34
class FailedJob < ActiveJob::Base
45
self.logger = nil
@@ -38,7 +39,7 @@ def rescue_callback(error); end
3839

3940
RSpec.describe "ActiveJob integration" do
4041
before(:all) do
41-
perform_basic_setup
42+
make_basic_app
4243
end
4344

4445
let(:event) do

sentry-rails/spec/support/test_rails_app/app.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
require "action_view/railtie"
44
require "action_controller/railtie"
55
# require "action_mailer/railtie"
6-
require "active_job/railtie"
76
# require "action_cable/engine"
87
# require "sprockets/railtie"
98
# require "rails/test_unit/railtie"

0 commit comments

Comments
 (0)