lib/isolator/adapters/base.rb in isolator-0.5.0 vs lib/isolator/adapters/base.rb in isolator-0.6.0
- old
+ new
@@ -2,11 +2,11 @@
module Isolator
module Adapters
# Used as a "template" for adapters
module Base
- attr_accessor :exception_class, :exception_message
+ attr_accessor :exception_class, :exception_message, :details_message
def disable!
@disabled = true
end
@@ -20,13 +20,13 @@
def disabled?
@disabled == true
end
- def notify(backtrace, *args)
+ def notify(backtrace, obj, *args)
return unless notify?(*args)
- Isolator.notify(exception: build_exception, backtrace: backtrace)
+ Isolator.notify(exception: build_exception(obj, args), backtrace: backtrace)
end
def notify?(*args)
enabled? && Isolator.enabled? && Isolator.within_transaction? && !ignored?(*args)
end
@@ -43,12 +43,13 @@
ignores.any? { |block| block.call(*args) }
end
private
- def build_exception
+ def build_exception(obj, args)
klass = exception_class || Isolator::UnsafeOperationError
- klass.new(exception_message)
+ details = details_message.call(obj, args) if details_message
+ klass.new(exception_message, details: details)
end
end
end
end