module Isolator::Adapters::Base
Used as a “template” for adapters
Attributes
details_message[RW]
exception_class[RW]
exception_message[RW]
Public Instance Methods
disable!()
click to toggle source
# File lib/isolator/adapters/base.rb, line 9 def disable! @disabled = true end
disabled?()
click to toggle source
# File lib/isolator/adapters/base.rb, line 21 def disabled? @disabled == true end
enable!()
click to toggle source
# File lib/isolator/adapters/base.rb, line 13 def enable! @disabled = false end
enabled?()
click to toggle source
# File lib/isolator/adapters/base.rb, line 17 def enabled? !disabled? end
ignore_if(&block)
click to toggle source
# File lib/isolator/adapters/base.rb, line 34 def ignore_if(&block) ignores << block end
ignored?(*args)
click to toggle source
# File lib/isolator/adapters/base.rb, line 42 def ignored?(*args) ignores.any? { |block| block.call(*args) } end
ignores()
click to toggle source
# File lib/isolator/adapters/base.rb, line 38 def ignores @ignores ||= [] end
notify(backtrace, obj, *args)
click to toggle source
# File lib/isolator/adapters/base.rb, line 25 def notify(backtrace, obj, *args) return unless notify?(*args) Isolator.notify(exception: build_exception(obj, args), backtrace: backtrace) end
notify?(*args)
click to toggle source
# File lib/isolator/adapters/base.rb, line 30 def notify?(*args) enabled? && Isolator.enabled? && Isolator.within_transaction? && !ignored?(*args) end
Private Instance Methods
build_exception(obj, args)
click to toggle source
# File lib/isolator/adapters/base.rb, line 48 def build_exception(obj, args) klass = exception_class || Isolator::UnsafeOperationError details = details_message.call(obj, args) if details_message klass.new(exception_message, details: details) end