class EventRouter::Configuration

Attributes

delivery_adapter[R]
delivery_adapters[R]
serializer_adapter[R]
serializer_adapters[R]

Public Class Methods

new() click to toggle source
# File lib/event_router/configuration.rb, line 10
def initialize
  @delivery_adapters    = {}
  @serializer_adapters  = {}

  register_delivery_adapter(:sync)
  @delivery_adapter = :sync

  register_serializer_adapter(:json)
  @serializer_adapter = :json
end

Public Instance Methods

delivery_adapter=(adapter, _opts = {}) click to toggle source
# File lib/event_router/configuration.rb, line 21
def delivery_adapter=(adapter, _opts = {})
  validate_inclusion!(:delivery_adapter, adapter, @delivery_adapters)

  @delivery_adapter = adapter
end
delivery_adapter_class(adapter) click to toggle source
# File lib/event_router/configuration.rb, line 27
def delivery_adapter_class(adapter)
  @delivery_adapters[adapter]
end
register_delivery_adapter(adapter, opts = {}) click to toggle source
# File lib/event_router/configuration.rb, line 31
def register_delivery_adapter(adapter, opts = {})
  adapter_class = load_adapter_class(Publisher::ADAPTERS, adapter) || opts[:adapter_class]

  adapter_class.options       = opts
  @delivery_adapters[adapter] = adapter_class
end
register_serializer_adapter(adapter, opts = {}) click to toggle source
# File lib/event_router/configuration.rb, line 48
def register_serializer_adapter(adapter, opts = {})
  adapter_class = load_adapter_class(Serializer::ADAPTERS, adapter) || opts[:adapter_class]

  @serializer_adapters[adapter] = adapter_class
end
serializer_adapter=(adapter) click to toggle source
# File lib/event_router/configuration.rb, line 38
def serializer_adapter=(adapter)
  validate_inclusion!(:serializer_adapter, adapter, @serializer_adapters)

  @serializer_adapter = adapter
end
serializer_adapter_class(adapter) click to toggle source
# File lib/event_router/configuration.rb, line 44
def serializer_adapter_class(adapter)
  @serializer_adapters[adapter]
end

Private Instance Methods

load_adapter_class(adapters, adapter) click to toggle source
# File lib/event_router/configuration.rb, line 56
def load_adapter_class(adapters, adapter)
  return nil unless adapters.key?(adapter)

  require_relative adapters[adapter][:path]
  Kernel.const_get(adapters[adapter][:adapter_class])
end
validate_inclusion!(config, option, supported_options) click to toggle source
# File lib/event_router/configuration.rb, line 63
def validate_inclusion!(config, option, supported_options)
  return if supported_options.include?(option)

  raise Errors::UnsupportedOptionError.new(
    config: config, option: option, supported_options: supported_options.keys
  )
end