Class: Outbox::Clients::Base
- Inherits:
-
Object
- Object
- Outbox::Clients::Base
- Defined in:
- lib/outbox/clients/base.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#settings ⇒ Object
readonly
Returns the value of attribute settings.
Class Method Summary collapse
-
.defaults(defaults = nil) ⇒ Object
Sets default settings for the client.
Instance Method Summary collapse
-
#deliver(message) ⇒ Object
Delivers the given message.
-
#initialize(settings = nil) ⇒ Base
constructor
Creates a new client instance.
Constructor Details
#initialize(settings = nil) ⇒ Base
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
26 27 28 29 |
# File 'lib/outbox/clients/base.rb', line 26 def initialize(settings = nil) @settings = self.class.defaults.dup @settings.merge! settings if settings end |
Instance Attribute Details
#settings ⇒ Object (readonly)
Returns the value of attribute settings.
4 5 6 |
# File 'lib/outbox/clients/base.rb', line 4 def settings @settings end |
Class Method Details
.defaults(defaults = nil) ⇒ Object
Sets default settings for the client.
MailClient.defaults delivery_method: :sendmail
client = MailClient.new
client.settings[:delivery_method] #=> :sendmail
11 12 13 14 15 16 17 18 19 |
# File 'lib/outbox/clients/base.rb', line 11 def self.defaults(defaults = nil) @defaults ||= {} if defaults.nil? @defaults else @defaults.merge!(defaults) end end |
Instance Method Details
#deliver(message) ⇒ Object
Delivers the given message.
Subclasses must provide an implementation of this method.
34 35 36 |
# File 'lib/outbox/clients/base.rb', line 34 def deliver() raise NotImplementedError, 'Subclasses must implement a deliver method' end |