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