Class: ProxyRb::EventBus::NameResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/proxy_rb/event_bus/name_resolver.rb

Overview

Resolve name to Event name

Defined Under Namespace

Modules: ResolveHelpers Classes: ClassResolver, FailingResolver, StringResolver, SymbolResolver

Instance Method Summary collapse

Constructor Details

#initialize(default_namespace) ⇒ NameResolver

Returns a new instance of NameResolver.



146
147
148
149
150
151
152
153
154
# File 'lib/proxy_rb/event_bus/name_resolver.rb', line 146

def initialize(default_namespace)
  @default_namespace = default_namespace

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

Instance Method Details

#transform(event_id) ⇒ Object



156
157
158
159
160
# File 'lib/proxy_rb/event_bus/name_resolver.rb', line 156

def transform(event_id)
  resolvers.find { |r| r.match? event_id }.new.transform(default_namespace, event_id)
rescue => e
  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")})
end