class RubyEventStore::ROM::Env

Attributes

rom_container[RW]

Public Class Methods

new(rom_container) click to toggle source
# File lib/ruby_event_store/rom.rb, line 22
def initialize(rom_container)
  @rom_container = rom_container

  register(:unique_violation_error_handlers, Set.new)
  register(:not_found_error_handlers, Set.new)
  register(:logger, Logger.new(STDOUT).tap { |logger| logger.level = Logger::WARN })
end

Public Instance Methods

handle_error(type, *args, swallow: []) { || ... } click to toggle source
# File lib/ruby_event_store/rom.rb, line 47
def handle_error(type, *args, swallow: [])
  yield
rescue StandardError => e
  begin
    resolve(:"#{type}_error_handlers").each { |h| h.call(e, *args) }
    raise e
  rescue *swallow
    # swallow
  end
end
logger() click to toggle source
# File lib/ruby_event_store/rom.rb, line 30
def logger
  resolve(:logger)
end
register_error_handler(type, handler) click to toggle source
# File lib/ruby_event_store/rom.rb, line 43
def register_error_handler(type, handler)
  resolve(:"#{type}_error_handlers") << handler
end
register_unit_of_work_options(options) click to toggle source
# File lib/ruby_event_store/rom.rb, line 39
def register_unit_of_work_options(options)
  register(:unit_of_work_options, options)
end
unit_of_work(&block) click to toggle source
# File lib/ruby_event_store/rom.rb, line 34
def unit_of_work(&block)
  options = resolve(:unit_of_work_options).dup
  options.delete(:class) { UnitOfWork }.new(rom: self).call(**options, &block)
end