class Clamour::Subscription

Attributes

configuration[R]

@return [Clamour::Configuration]

logger[R]

@return [Logger]

registry[R]

@return [Clamour::Registry]

Public Class Methods

new(configuration = Clamour.configuration, registry = Clamour.registry) click to toggle source

@param [Clamour::Configuration] configuration

# File lib/clamour/subscription.rb, line 12
def initialize(configuration = Clamour.configuration, registry = Clamour.registry)
  @configuration = configuration
  @logger = configuration.logger
  @registry = registry
end

Public Instance Methods

bus() click to toggle source
# File lib/clamour/subscription.rb, line 33
def bus
  @bus ||= Clamour::Bus.new(configuration)
end
perform() click to toggle source
# File lib/clamour/subscription.rb, line 18
def perform
  bus.subscribe do |received_hash|
    type = received_hash[:_type]
    route(type, received_hash)
  end
end
route(type, attributes) click to toggle source

@param [String] type @param [Hash] attributes

# File lib/clamour/subscription.rb, line 27
def route(type, attributes)
  registry.route(type) do |handler_class, message_class|
    handler_class.perform(message_class.new(attributes), self)
  end
end