Class: Mail::SMTPPool
- Inherits:
-
Object
- Object
- Mail::SMTPPool
- Defined in:
- lib/mail/smtp_pool.rb,
lib/mail/smtp_pool/connection.rb
Defined Under Namespace
Classes: Connection
Constant Summary collapse
- VERSION =
'0.1.0'- POOL_DEFAULTS =
{ pool_size: 5, pool_timeout: 5 }.freeze
Class Method Summary collapse
Instance Method Summary collapse
- #deliver!(mail) ⇒ Object
-
#initialize(settings) ⇒ SMTPPool
constructor
A new instance of SMTPPool.
-
#settings ⇒ Object
This makes it compatible with Mail’s ‘#deliver!` method github.com/mikel/mail/blob/22a7afc23f253319965bf9228a0a430eec94e06d/lib/mail/message.rb#L271.
Constructor Details
#initialize(settings) ⇒ SMTPPool
Returns a new instance of SMTPPool.
26 27 28 29 30 |
# File 'lib/mail/smtp_pool.rb', line 26 def initialize(settings) raise ArgumentError, 'pool is required. You can create one using Mail::SMTPPool.create_pool.' if settings[:pool].nil? @pool = settings[:pool] end |
Class Method Details
.create_pool(settings = {}) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/mail/smtp_pool.rb', line 16 def create_pool(settings = {}) pool_settings = POOL_DEFAULTS.merge(settings) smtp_settings = settings.reject { |k, v| POOL_DEFAULTS.keys.include?(k) } ConnectionPool.new(size: pool_settings[:pool_size], timeout: pool_settings[:pool_timeout]) do Mail::SMTPPool::Connection.new(smtp_settings) end end |
Instance Method Details
#deliver!(mail) ⇒ Object
32 33 34 |
# File 'lib/mail/smtp_pool.rb', line 32 def deliver!(mail) @pool.with { |conn| conn.deliver!(mail) } end |
#settings ⇒ Object
This makes it compatible with Mail’s ‘#deliver!` method github.com/mikel/mail/blob/22a7afc23f253319965bf9228a0a430eec94e06d/lib/mail/message.rb#L271
38 39 40 |
# File 'lib/mail/smtp_pool.rb', line 38 def settings {} end |