Sha256: 70b4f3f98266b03db80341406990f4145a5888137702a0138e8b6fb65a1c7336
Contents?: true
Size: 1.06 KB
Versions: 5
Compression:
Stored size: 1.06 KB
Contents
module Outbox module Clients class Base attr_reader :settings # Sets default settings for the client. # # MailClient.defaults delivery_method: :sendmail # client = MailClient.new # client.settings[:delivery_method] #=> :sendmail def self.defaults(defaults = nil) @defaults ||= {} if defaults.nil? @defaults else @defaults.merge!(defaults) end end # 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 def initialize(settings = nil) @settings = self.class.defaults.dup @settings.merge! settings if settings end # Delivers the given message. # # Subclasses must provide an implementation of this method. def deliver(message) raise NotImplementedError, 'Subclasses must implement a deliver method' end end end end
Version data entries
5 entries across 5 versions & 1 rubygems