module Outbox::MessageClients::ClassMethods
Public Instance Methods
default_client(client = nil, settings = nil)
click to toggle source
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>
# 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)
click to toggle source
Sets the default client.
# File lib/outbox/message_clients.rb, line 22 def default_client=(client) @default_client = get_client(client) end
default_client_settings(settings = nil)
click to toggle source
Configure the default client.
# 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
Also aliased as: default_client_settings=
register_client_alias(name, client)
click to toggle source
Registers a client class with an alias.
Email.register_client_alias :mandrill, MandrillClient Email.default_client :mandrill, mandrill_option: 'foo'
# File lib/outbox/message_clients.rb, line 41 def register_client_alias(name, client) registered_client_aliases[name.to_sym] = client end
registered_client_aliases()
click to toggle source
Returns a hash of client aliases, where the key is the alias and the value is client class.
# File lib/outbox/message_clients.rb, line 47 def registered_client_aliases @registered_client_aliases ||= { test: Outbox::Clients::TestClient } end
Protected Instance Methods
get_client(client, options = nil)
click to toggle source
# File lib/outbox/message_clients.rb, line 53 def get_client(client, options = nil) case client when Symbol, String client = registered_client_aliases[client.to_sym] end if client.instance_of?(Class) client.new(options) else client end end