lib/bugsnag/middleware/exception_meta_data.rb in bugsnag-6.6.3 vs lib/bugsnag/middleware/exception_meta_data.rb in bugsnag-6.6.4
- old
+ new
@@ -1,30 +1,30 @@
module Bugsnag::Middleware
+ ##
+ # Extracts data from the exception.
class ExceptionMetaData
def initialize(bugsnag)
@bugsnag = bugsnag
end
def call(report)
# Apply the user's information attached to the exceptions
report.raw_exceptions.each do |exception|
- if exception.class.include?(Bugsnag::MetaData)
- if exception.bugsnag_user_id.is_a?(String)
- report.user = {id: exception.bugsnag_user_id}
- end
+ if exception.respond_to?(:bugsnag_user_id) && exception.bugsnag_user_id.is_a?(String)
+ report.user = {id: exception.bugsnag_user_id}
+ end
- if exception.bugsnag_context.is_a?(String)
- report.context = exception.bugsnag_context
- end
+ if exception.respond_to?(:bugsnag_context) && exception.bugsnag_context.is_a?(String)
+ report.context = exception.bugsnag_context
+ end
- if exception.bugsnag_grouping_hash.is_a?(String)
- report.grouping_hash = exception.bugsnag_grouping_hash
- end
+ if exception.respond_to?(:bugsnag_grouping_hash) && exception.bugsnag_grouping_hash.is_a?(String)
+ report.grouping_hash = exception.bugsnag_grouping_hash
+ end
- if exception.respond_to?(:bugsnag_meta_data) && exception.bugsnag_meta_data
- exception.bugsnag_meta_data.each do |key, value|
- report.add_tab key, value
- end
+ if exception.respond_to?(:bugsnag_meta_data) && exception.bugsnag_meta_data.is_a?(Hash)
+ exception.bugsnag_meta_data.each do |key, value|
+ report.add_tab key, value
end
end
end
@bugsnag.call(report)