Class: Mail::TestMailer

Inherits:
Object
  • Object
show all
Defined in:
lib/mail/network/delivery_methods/test_mailer.rb

Overview

The TestMailer is a bare bones mailer that does nothing. It is useful when you are testing.

It also provides a template of the minimum methods you require to implement if you want to make a custom mailer for Mail

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(values) ⇒ TestMailer

Returns a new instance of TestMailer.


33
34
35
# File 'lib/mail/network/delivery_methods/test_mailer.rb', line 33

def initialize(values)
  @settings = values.dup
end

Instance Attribute Details

#settingsObject

Returns the value of attribute settings


31
32
33
# File 'lib/mail/network/delivery_methods/test_mailer.rb', line 31

def settings
  @settings
end

Class Method Details

.deliveriesObject

Provides a store of all the emails sent with the TestMailer so you can check them.


12
13
14
# File 'lib/mail/network/delivery_methods/test_mailer.rb', line 12

def self.deliveries
  @@deliveries ||= []
end

.deliveries=(val) ⇒ Object

Allows you to over write the default deliveries store from an array to some other object. If you just want to clear the store, call TestMailer.deliveries.clear.

If you place another object here, please make sure it responds to:

  • << (message)

  • clear

  • length

  • size

  • and other common Array methods


27
28
29
# File 'lib/mail/network/delivery_methods/test_mailer.rb', line 27

def self.deliveries=(val)
  @@deliveries = val
end

Instance Method Details

#deliver!(mail) ⇒ Object


37
38
39
40
41
42
# File 'lib/mail/network/delivery_methods/test_mailer.rb', line 37

def deliver!(mail)
  # Create the envelope to validate it
  Mail::SmtpEnvelope.new(mail)

  Mail::TestMailer.deliveries << mail
end