Module: Outbox::MessageTypes::ClassMethods

Defined in:
lib/outbox/message_types.rb

Instance Method Summary collapse

Instance Method Details

#message_typesObject

Returns a hash of the registred message types, where the key is the name of the message type and the value is the message type class.



30
31
32
# File 'lib/outbox/message_types.rb', line 30

def message_types
  @message_types ||= {}
end

#register_message_type(name, message_type) ⇒ Object

Registers a message type for sending & creates accessors.

Message.register_message_type :telepathy, TelepathyMessage
message = Message.new do
  telepathy do
    thought 'Hello world.'
  end
end
message.telepathy.thought #=> 'Hello world.'

Upon deliver the audience object will be checked for the registered message type.

message.deliver telepathy: 'Bob'


22
23
24
25
26
# File 'lib/outbox/message_types.rb', line 22

def register_message_type(name, message_type)
  message_types[name.to_sym] = message_type
  define_message_type_reader(name, message_type)
  define_message_type_writer(name)
end