class Outbox::Clients::Base

Attributes

settings[R]

Public Class Methods

defaults(defaults = nil) click to toggle source

Sets default settings for the client.

MailClient.defaults delivery_method: :sendmail
client = MailClient.new
client.settings[:delivery_method] #=> :sendmail
# File lib/outbox/clients/base.rb, line 11
def self.defaults(defaults = nil)
  @defaults ||= {}

  if defaults.nil?
    @defaults
  else
    @defaults.merge!(defaults)
  end
end
new(settings = nil) click to toggle source

Creates a new client instance. Settings can be configured per instance by passing in a hash.

client = MailClient.new delivery_method: :sendmail
client.settings[:delivery_method] #=> :sendmail
# File lib/outbox/clients/base.rb, line 26
def initialize(settings = nil)
  @settings = self.class.defaults.dup
  @settings.merge! settings if settings
end

Public Instance Methods

deliver(message) click to toggle source

Delivers the given message.

Subclasses must provide an implementation of this method.

# File lib/outbox/clients/base.rb, line 34
def deliver(message)
  raise NotImplementedError, 'Subclasses must implement a deliver method'
end