jeremyevans-simple_mailer 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README CHANGED
@@ -49,7 +49,7 @@ Testing support is probably the main reason to use simple_mailer over
49
49
  using net/smtp directly. After you enter test mode, emails you send
50
50
  are available via the emails_sent option:
51
51
 
52
- SimpleMailer.simple_mailer_test_mode!
52
+ SimpleMailer.test_mode!
53
53
  SimpleMailer.emails_sent # []
54
54
  SimpleMailer.send_email('from@from.com', 'to@to.com', 'S, 'B')
55
55
  SimpleMailer.emails_sent # [[message, 'from@from.com', 'to@to.com']]
data/lib/simple_mailer.rb CHANGED
@@ -9,18 +9,42 @@ require 'net/smtp'
9
9
  # it handles headers and it has a test mode that just records the number of
10
10
  # emails sent instead of actually sending the messages.
11
11
  module SimpleMailer
12
+ @test_mode = false
13
+ @emails_sent = []
14
+
12
15
  extend self
13
16
 
14
17
  DEFAULT_SMTP_HOST = 'localhost'.freeze
15
18
 
16
- # The emails sent in test mode. Is an array of arrays. Each
17
- # element array is a array of three elements, the message, from address,
18
- # and to address.
19
- attr_reader :emails_sent
19
+ # The array of emails sent
20
+ def self.emails_sent
21
+ @emails_sent
22
+ end
23
+
24
+ # Turn on the test mode. There is no method given to turn it off.
25
+ # While in test mode, messages will not be sent, but the messages
26
+ # that would have been sent are available via emails_sent.
27
+ # This method also resets the emails_sent variable to the empty array.
28
+ def self.test_mode!
29
+ @emails_sent.clear
30
+ @test_mode = true
31
+ end
32
+
33
+ # Whether we are in simple mailer's test mode
34
+ def self.test_mode?
35
+ @test_mode
36
+ end
20
37
 
21
38
  # The smtp server to sent email to
22
39
  attr_accessor :smtp_server
23
40
 
41
+ # The emails sent in test mode. Is an array of arrays. Each
42
+ # element array is a array of three elements, the message, from address,
43
+ # and to address.
44
+ def emails_sent
45
+ SimpleMailer.emails_sent
46
+ end
47
+
24
48
  # Formats email message using from address, to address, subject, message,
25
49
  # and header hash. Arguments:
26
50
  # * from - From address for the message
@@ -49,21 +73,12 @@ Subject: #{subject}
49
73
  END_OF_MESSAGE
50
74
  end
51
75
 
52
- # Turn on the test mode. There is no method given to turn it off.
53
- # While in test mode, messages will not be sent, but the messages
54
- # that would have been sent are available via emails_sent.
55
- # This method also resets the emails_sent variable to the empty array.
56
- def simple_mailer_test_mode!
57
- @emails_sent = []
58
- @simple_mailer_test_mode = true
59
- end
60
-
61
76
  private
62
77
 
63
78
  # If in test mode, call test_mode_send_email with the arguments.
64
79
  # Otherwise, use net/smtp to send the message to the smtp server.
65
80
  def _send_email(msg, from, to)
66
- if simple_mailer_test_mode?
81
+ if SimpleMailer.test_mode?
67
82
  test_mode_send_email(msg, from, to)
68
83
  else
69
84
  Net::SMTP.start(smtp_server || DEFAULT_SMTP_HOST){|s| s.send_message(msg, from, to)}
@@ -75,9 +90,4 @@ END_OF_MESSAGE
75
90
  def test_mode_send_email(msg, from, to)
76
91
  emails_sent << [msg, from, to]
77
92
  end
78
-
79
- # Whether we are in simple mailer's test mode
80
- def simple_mailer_test_mode?
81
- @simple_mailer_test_mode
82
- end
83
93
  end
@@ -72,13 +72,13 @@ END_MESSAGE
72
72
  end
73
73
 
74
74
  it "should not send emails in test mode" do
75
- @mailer.simple_mailer_test_mode!
75
+ SimpleMailer.test_mode!
76
76
  @mailer.send_email('from3@from.com', 'to3@to.com', 'Test Subject 3', 'Test Body 3', 'HeaderKey3'=>'HeaderValue3', :smtp_from=>'from@to.com', :smtp_to=>'to@from.com')
77
77
  $message.should == [nil, nil, nil]
78
78
  end
79
79
 
80
80
  it "should record emails sent to emails_sent in test mode" do
81
- @mailer.simple_mailer_test_mode!
81
+ SimpleMailer.test_mode!
82
82
  @mailer.send_email('from3@from.com', 'to3@to.com', 'Test Subject 3', 'Test Body 3', 'HeaderKey3'=>'HeaderValue3', :smtp_from=>'from@to.com', :smtp_to=>'to@from.com')
83
83
  @mailer.emails_sent.should == [[<<END_MESSAGE, 'from@to.com', 'to@from.com']]
84
84
  From: from3@from.com
@@ -88,6 +88,7 @@ HeaderKey3: HeaderValue3
88
88
 
89
89
  Test Body 3
90
90
  END_MESSAGE
91
+ SimpleMailer.instance_variable_set(:@test_mode, false)
91
92
  end
92
93
  end
93
94
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jeremyevans-simple_mailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Evans