Module: Outbox::MessageClients::ClassMethods

Defined in:
lib/outbox/message_clients.rb

Instance Method Summary collapse

Instance Method Details

#default_client(client = nil, settings = nil) ⇒ Object

Returns the default client for the message type.

Email.default_client #=> #<Outbox::Clients::Mail>

Also allows you to set the default client using an alias, with optoins.

Email.default_client :test, option: 'foo'
Email.default_client #=> #<Outbox::Clients::TestClient>


16
17
18
19
# File 'lib/outbox/message_clients.rb', line 16

def default_client(client = nil, settings = nil)
  @default_client = get_client(client, settings) if client
  @default_client
end

#default_client=(client) ⇒ Object

Sets the default client.



22
23
24
# File 'lib/outbox/message_clients.rb', line 22

def default_client=(client)
  @default_client = get_client(client)
end

#default_client_settings(settings = nil) ⇒ Object Also known as: default_client_settings=

Configure the default client.



27
28
29
30
31
32
33
34
# File 'lib/outbox/message_clients.rb', line 27

def default_client_settings(settings = nil)
  if default_client.nil?
    raise ArgumentError, 'default_client must be set before setting default_client_settings'
  end

  default_client.settings.merge!(settings) if settings
  default_client.settings
end

#register_client_alias(name, client) ⇒ Object

Registers a client class with an alias.

Email.register_client_alias :mandrill, MandrillClient
Email.default_client :mandrill, mandrill_option: 'foo'


41
42
43
# File 'lib/outbox/message_clients.rb', line 41

def register_client_alias(name, client)
  registered_client_aliases[name.to_sym] = client
end

#registered_client_aliasesObject

Returns a hash of client aliases, where the key is the alias and the value is client class.



47
48
49
# File 'lib/outbox/message_clients.rb', line 47

def registered_client_aliases
  @registered_client_aliases ||= { test: Outbox::Clients::TestClient }
end