class Koine::CommandBus::CommandBus

Constants

UnhandledCommandError

Attributes

resolvers[R]

Public Class Methods

new(resolvers = []) click to toggle source
# File lib/koine/command_bus/command_bus.rb, line 8
def initialize(resolvers = [])
  @resolvers = resolvers
end

Public Instance Methods

handle(command) click to toggle source
# File lib/koine/command_bus/command_bus.rb, line 12
def handle(command)
  handler_for(command).handle(command)
end
handler_for(command) click to toggle source
# File lib/koine/command_bus/command_bus.rb, line 16
def handler_for(command)
  resolvers.each do |resolver|
    handler = resolver.resolve(command)
    return handler if handler
  end

  raise UnhandledCommandError, "Command '#{command.class}' could not be handled"
end