diff --git a/sentry-rails/lib/sentry/rails/overrides/streaming_reporter.rb b/sentry-rails/lib/sentry/rails/overrides/streaming_reporter.rb index d1bc1b1dd..9597186e6 100644 --- a/sentry-rails/lib/sentry/rails/overrides/streaming_reporter.rb +++ b/sentry-rails/lib/sentry/rails/overrides/streaming_reporter.rb @@ -4,6 +4,8 @@ module Sentry module Rails module Overrides module StreamingReporter + private + def log_error(exception) Sentry::Rails.capture_exception(exception) super diff --git a/sentry-rails/spec/sentry/rails/overrides/streaming_reporter_spec.rb b/sentry-rails/spec/sentry/rails/overrides/streaming_reporter_spec.rb new file mode 100644 index 000000000..677f8f2b4 --- /dev/null +++ b/sentry-rails/spec/sentry/rails/overrides/streaming_reporter_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'spec_helper' +require 'sentry/rails/overrides/streaming_reporter' + +RSpec.describe Sentry::Rails::Overrides::StreamingReporter do + it "keeps ActionController::Live's private method private when prepended" do + live_module = Module.new do + private + + def log_error(_exception) + end + end + live_module.prepend(described_class) + controller_class = Class.new { include live_module } + + expect(controller_class.public_method_defined?(:log_error)).to be(false) + expect(controller_class.private_method_defined?(:log_error)).to be(true) + end +end