Module: Outbox::MessageTypes::ClassMethods

Defined in:
lib/outbox/message_types.rb

Constant Summary collapse

DYNAMIC_MODULE_NAME =
:DynamicMessageTypes

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.



36
37
38
# File 'lib/outbox/message_types.rb', line 36

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'


25
26
27
28
29
30
31
32
# File 'lib/outbox/message_types.rb', line 25

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)
  define_default_message_type_client_accessors(name, message_type)
  define_default_message_type_client_settings_accessors(name, message_type)
  define_message_type_defaults_accessors(name, message_type)
end