class Aruba::EventBus::NameResolver

Resolve name to Event name

Attributes

default_namespace[R]
resolvers[R]

Public Class Methods

new(default_namespace) click to toggle source
# File lib/aruba/event_bus/name_resolver.rb, line 149
def initialize(default_namespace)
  @default_namespace = default_namespace

  @resolvers = []
  @resolvers << ClassResolver
  @resolvers << StringResolver
  @resolvers << SymbolResolver
  @resolvers << FailingResolver
end

Public Instance Methods

transform(event_id) click to toggle source
# File lib/aruba/event_bus/name_resolver.rb, line 159
def transform(event_id)
  resolvers.find { |r| r.match? event_id }.new.transform(default_namespace, event_id)
rescue => e
  # rubocop:disable Metrics/LineLength
  raise EventNameResolveError, %(Transforming "#{event_id}" into an event class failed. Supported types are: #{@resolvers.map(&:supports).flatten.join(', ')}. #{e.message}.\n\n#{e.backtrace.join("\n")})
  # rubocop:enable Metrics/LineLength
end