pony 1.11 → 1.12

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.
Files changed (7) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -3
  3. data/Rakefile +1 -0
  4. data/lib/pony.rb +118 -119
  5. data/pony.gemspec +2 -2
  6. data/spec/pony_spec.rb +37 -37
  7. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3174f77ea35e6999224137e7bfa6267bdada8642
4
- data.tar.gz: eca13df1efe9e87982f83f09cbf12df3022db9cf
3
+ metadata.gz: 756a7871e13ad465c063b18683d18202907948b1
4
+ data.tar.gz: 38a9f0e41442da28577320ed8c54afe991d77be5
5
5
  SHA512:
6
- metadata.gz: d1945679fe5266a6973539300fabb181eea9d8abc69ec4bad21841d0df52fc244ef430c73a09a7c8952a0b1c0c9591f13724216c4bfeabd5266b4fbff3b14c76
7
- data.tar.gz: 7d3f7bcd9ef86f858271d850f364fb8837ec861a16b2214941b89df9d6d2531e53c4da569e43ce1bc48a86da9f2337d7a1b10f75e9ca472eab70ba9a3c60f89f
6
+ metadata.gz: e913d65e224fcebb25ab8eb5ae82afddd84530a9eafc7e3c11aff3a3f8554e383386e5a1d077fe041c3ebd9fdcb871b5989b385b632e458a4f8defd755c9542b
7
+ data.tar.gz: d74bf0263e7acfc0f33b1172ecca76a01a23b9149a00245d9682bbc7e89c5f42b6e5c1dd05e11dd5d881d3b32e1c59d89d04c3bf01bc796f6158dd840941b7dd
data/README.md CHANGED
@@ -14,7 +14,7 @@ Any option key may be omitted except for ```:to```. See List Of Options section
14
14
 
15
15
  Pony uses ```/usr/sbin/sendmail``` to send mail if it is available, otherwise it uses SMTP to localhost.
16
16
 
17
- This can be over-ridden if you specify a via option:
17
+ This can be overridden if you specify a via option:
18
18
 
19
19
  Pony.mail(:to => 'you@example.com', :via => :smtp) # sends via SMTP
20
20
  Pony.mail(:to => 'you@example.com', :via => :sendmail) # sends via sendmail
@@ -44,12 +44,14 @@ Gmail example (with TLS/SSL)
44
44
  :port => '587',
45
45
  :enable_starttls_auto => true,
46
46
  :user_name => 'user',
47
- :password => 'password',
47
+ :password => 'password_see_note',
48
48
  :authentication => :plain, # :plain, :login, :cram_md5, no auth by default
49
49
  :domain => "localhost.localdomain" # the HELO domain provided by the client to the server
50
50
  }
51
51
  })
52
52
 
53
+ Note: If you use 2 step verification, you will have to generate an application specific password and NOT use your normal password - see https://support.google.com/accounts/answer/185833?hl=en
54
+
53
55
  And options for Sendmail:
54
56
 
55
57
  Pony.mail({
@@ -61,7 +63,7 @@ And options for Sendmail:
61
63
  }
62
64
  })
63
65
 
64
- If you're using ssmtp, set ```:arguments => ''```.
66
+ If you're using smtp, set ```:arguments => ''```.
65
67
 
66
68
  ## Attachments ##
67
69
 
@@ -159,6 +161,17 @@ Append the options passd into Pony.mail to the body of the email. Useful for de
159
161
 
160
162
  Pony.append_inputs
161
163
 
164
+ ### Using Pony with Testing or Spec'ing Libraries ###
165
+
166
+ As pony relies on mail to send the mails, you can also use its TestMailer in your tests.
167
+
168
+ Pony.override_options = { :via => :test }
169
+ Pony.mail(:to => 'foo@bar')
170
+ Mail::TestMailer.deliveries.length
171
+ => 1
172
+
173
+ For further examples see the [corresponding section of mail's readme](https://github.com/mikel/mail#using-mail-with-testing-or-specing-libraries)
174
+
162
175
  ## Help ##
163
176
 
164
177
  If you need help using Pony, or it looks like you've found a bug,
@@ -173,9 +186,11 @@ https://groups.google.com/forum/#!forum/ponyrb
173
186
 
174
187
  ## Authors ##
175
188
  * Adam Wiggins [@adamwiggins](https://github.com/adamwiggins)
189
+ * Andrea Talbot [@janehax](https://github.com/janehax)
176
190
  * Ben Prew [@benprew](https://github.com/benprew)
177
191
  * Cameron Matheson [@cmatheson](https://github.com/cmatheson)
178
192
  * Carl Hörberg [@carlhoerberg](https://github.com/carlhoerberg)
193
+ * Christian Haase [@krissi](https://github.com/krissi)
179
194
  * Daniel Lopes [@danielvlopes](https://github.com/danielvlopes)
180
195
  * Doug Hammond [@dslh](https://github.com/dslh)
181
196
  * Hiroshi Saito [@hiroshi](https://github.com/hiroshi)
@@ -183,6 +198,8 @@ https://groups.google.com/forum/#!forum/ponyrb
183
198
  * MIKAMI Yoshiyuki [@yoshuki](https://github.com/yoshuki)
184
199
  * Mathieu Martin [@webmat](https://github.com/webmat)
185
200
  * Michael Durrant [@durrantm](https://github.com/durrantm)
201
+ * Michał Kwiatkowski [@mkwiatkowski](https://github.com/mkwiatkowski)
202
+ * Nami-Doc
186
203
  * Neil Middleton [@neilmiddleton](https://github.com/neilmiddleton)
187
204
  * Neil Mock [@neilmock](https://github.com/neilmock)
188
205
  * Nickolas Means [@nmeans](https://github.com/nmeans)
@@ -192,12 +209,16 @@ https://groups.google.com/forum/#!forum/ponyrb
192
209
  * Ryan Malecky [@rmalecky](https://github.com/rmalecky)
193
210
  * Seamus Abshere [@seamusabshere](https://github.com/seamusabshere)
194
211
  * Stephen Celis [@stephencelis](https://github.com/stephencelis)
212
+ * Steve Root [@steveroot](https://github.com/steveroot)
195
213
  * arunthampi [@arunthampi](https://github.com/arunthampi)
196
214
  * rick [@rick](https://github.com/rick)
197
215
  * rohit [@rohit](https://github.com/rohit)
198
216
 
199
217
  ## Changelog ##
200
218
 
219
+ #### 1.12 ####
220
+ * fix bug: NoMethodError when using mail 2.7.0
221
+
201
222
  #### 1.11 ####
202
223
  * Improved handling of mails with both text and html bodies and attachments
203
224
 
data/Rakefile CHANGED
@@ -28,6 +28,7 @@ task :uninstall => [ :clean ] do
28
28
  sh %{sudo gem uninstall #{name}}
29
29
  end
30
30
 
31
+ desc "Print all authors from git history"
31
32
  task :authors do
32
33
  token = `cat ~/.github_token`.chomp
33
34
  authors = `git log |grep Author |cut -f 1 -d'<' |cut -f2 -d':' |sort -u`
@@ -146,7 +146,7 @@ module Pony
146
146
  if @@append_inputs
147
147
  options[:body] = "#{options[:body]}/n #{options.to_s}"
148
148
  end
149
-
149
+
150
150
  options = @@options.merge options
151
151
  options = options.merge @@override_options
152
152
 
@@ -170,56 +170,61 @@ module Pony
170
170
  standard_options + non_standard_options
171
171
  end
172
172
 
173
- private
173
+ class << self
174
+ private
174
175
 
175
- def self.deliver(mail)
176
- mail.deliver!
177
- end
176
+ def deliver(mail)
177
+ mail.deliver!
178
+ end
178
179
 
179
- def self.default_delivery_method
180
- File.executable?(sendmail_binary) ? :sendmail : :smtp
181
- end
180
+ def default_delivery_method
181
+ File.executable?(sendmail_binary) ? :sendmail : :smtp
182
+ end
182
183
 
183
- def self.standard_options
184
- [
185
- :to,
186
- :cc,
187
- :bcc,
188
- :from,
189
- :subject,
190
- :content_type,
191
- :message_id,
192
- :sender,
193
- :reply_to,
194
- :smtp_envelope_to
195
- ]
196
- end
184
+ def standard_options
185
+ [
186
+ :to,
187
+ :cc,
188
+ :bcc,
189
+ :from,
190
+ :subject,
191
+ :content_type,
192
+ :message_id,
193
+ :sender,
194
+ :reply_to,
195
+ :smtp_envelope_to
196
+ ]
197
+ end
197
198
 
198
- def self.non_standard_options
199
- [
200
- :attachments,
201
- :body,
202
- :charset,
203
- :enable_starttls_auto,
204
- :headers,
205
- :html_body,
206
- :text_part_charset,
207
- :via,
208
- :via_options,
209
- :body_part_header,
210
- :html_body_part_header
211
- ]
212
- end
199
+ def non_standard_options
200
+ [
201
+ :attachments,
202
+ :body,
203
+ :charset,
204
+ :enable_starttls_auto,
205
+ :headers,
206
+ :html_body,
207
+ :text_part_charset,
208
+ :via,
209
+ :via_options,
210
+ :body_part_header,
211
+ :html_body_part_header
212
+ ]
213
+ end
213
214
 
214
- def self.build_mail(options)
215
- mail = Mail.new do |m|
216
- options[:date] ||= Time.now
217
- options[:from] ||= 'pony@unknown'
218
- options[:via_options] ||= {}
215
+ def build_mail(options)
216
+ nso = non_standard_options
217
+ mail = Mail.new do |m|
218
+ options[:date] ||= Time.now
219
+ options[:from] ||= 'pony@unknown'
220
+ options[:via_options] ||= {}
221
+
222
+ options.each do |k, v|
223
+ next if nso.include?(k)
224
+ m.send(k, v)
225
+ end
219
226
 
220
- options.each do |k, v|
221
- next if Pony.non_standard_options.include?(k)
222
- m.send(k, v)
227
+ m.delivery_method options[:via], options[:via_options]
223
228
  end
224
229
 
225
230
  # Automatic handling of multipart messages in the underlying
@@ -229,107 +234,101 @@ module Pony
229
234
  # boundary to encapsulate the body-parts within the
230
235
  # multipart/mixed boundary that will be created automatically.
231
236
  if options[:attachments] && options[:html_body] && options[:body]
232
- part(:content_type => 'multipart/alternative') do |p|
233
- p.html_part = Pony.build_html_part(options)
234
- p.text_part = Pony.build_text_part(options)
237
+ mail.part(:content_type => 'multipart/alternative') do |p|
238
+ p.html_part = build_html_part(options)
239
+ p.text_part = build_text_part(options)
235
240
  end
236
241
 
237
242
  # Otherwise if there is more than one part we still need to
238
243
  # ensure that they are all declared to be separate.
239
244
  elsif options[:html_body] || options[:attachments]
240
- if options[:html_body]
241
- m.html_part = Pony.build_html_part(options)
242
- end
243
-
244
- if options[:body]
245
- m.text_part = Pony.build_text_part(options)
246
- end
245
+ mail.html_part = build_html_part(options) if options[:html_body]
246
+ mail.text_part = build_text_part(options) if options[:body]
247
247
 
248
248
  # If all we have is a text body, we don't need to worry about parts.
249
249
  elsif options[:body]
250
- body options[:body]
250
+ mail.body options[:body]
251
251
  end
252
252
 
253
- delivery_method options[:via], options[:via_options]
254
- end
255
-
256
- (options[:headers] ||= {}).each do |key, value|
257
- mail[key] = value
258
- end
253
+ (options[:headers] ||= {}).each do |key, value|
254
+ mail[key] = value
255
+ end
259
256
 
260
- add_attachments(mail, options[:attachments]) if options[:attachments]
257
+ add_attachments(mail, options[:attachments]) if options[:attachments]
261
258
 
262
- mail.charset = options[:charset] if options[:charset] # charset must be set after setting content_type
259
+ mail.charset = options[:charset] if options[:charset] # charset must be set after setting content_type
263
260
 
264
- if mail.multipart? && options[:text_part_charset]
265
- mail.text_part.charset = options[:text_part_charset]
261
+ if mail.multipart? && options[:text_part_charset]
262
+ mail.text_part.charset = options[:text_part_charset]
263
+ end
264
+ set_content_type(mail, options[:content_type])
265
+ mail
266
266
  end
267
- set_content_type(mail, options[:content_type])
268
- mail
269
- end
270
267
 
271
- def self.build_html_part(options)
272
- Mail::Part.new(:content_type => 'text/html;charset=UTF-8') do
273
- content_transfer_encoding 'quoted-printable'
274
- body Mail::Encodings::QuotedPrintable.encode(options[:html_body])
275
- if options[:html_body_part_header] && options[:html_body_part_header].is_a?(Hash)
276
- options[:html_body_part_header].each do |k,v|
277
- header[k] = v
268
+ def build_html_part(options)
269
+ Mail::Part.new(:content_type => 'text/html;charset=UTF-8') do
270
+ content_transfer_encoding 'quoted-printable'
271
+ body Mail::Encodings::QuotedPrintable.encode(options[:html_body])
272
+ if options[:html_body_part_header] && options[:html_body_part_header].is_a?(Hash)
273
+ options[:html_body_part_header].each do |k,v|
274
+ header[k] = v
275
+ end
278
276
  end
279
277
  end
280
278
  end
281
- end
282
279
 
283
- def self.build_text_part(options)
284
- Mail::Part.new(:content_type => 'text/plain') do
285
- content_type options[:charset] if options[:charset]
286
- body options[:body]
287
- if options[:body_part_header] && options[:body_part_header].is_a?(Hash)
288
- options[:body_part_header].each do |k,v|
289
- header[k] = v
280
+ def build_text_part(options)
281
+ Mail::Part.new(:content_type => 'text/plain') do
282
+ content_type options[:charset] if options[:charset]
283
+ body options[:body]
284
+ if options[:body_part_header] && options[:body_part_header].is_a?(Hash)
285
+ options[:body_part_header].each do |k,v|
286
+ header[k] = v
287
+ end
290
288
  end
291
289
  end
292
290
  end
293
- end
294
291
 
295
- def self.set_content_type(mail, user_content_type)
296
- params = mail.content_type_parameters || {}
297
- content_type = case
298
- when user_content_type
299
- user_content_type
300
- when mail.has_attachments?
301
- if mail.attachments.detect { |a| a.inline? }
302
- ["multipart", "related", params]
303
- else
304
- ["multipart", "mixed", params]
305
- end
306
- when mail.multipart?
307
- ["multipart", "alternative", params]
308
- else
309
- false
292
+ def set_content_type(mail, user_content_type)
293
+ params = mail.content_type_parameters || {}
294
+ content_type =
295
+ case
296
+ when user_content_type
297
+ user_content_type
298
+ when mail.has_attachments?
299
+ if mail.attachments.detect { |a| a.inline? }
300
+ ["multipart", "related", params]
301
+ else
302
+ ["multipart", "mixed", params]
303
+ end
304
+ when mail.multipart?
305
+ ["multipart", "alternative", params]
306
+ else
307
+ false
308
+ end
309
+ mail.content_type = content_type if content_type
310
310
  end
311
- mail.content_type = content_type if content_type
312
- end
313
311
 
314
- def self.add_attachments(mail, attachments)
315
- attachments.each do |name, body|
316
- name = name.gsub /\s+/, ' '
317
-
318
- # mime-types wants to send these as "quoted-printable"
319
- if name =~ /\.xlsx$/
320
- mail.attachments[name] = {
321
- :content => Base64.encode64(body),
322
- :transfer_encoding => :base64
323
- }
324
- else
325
- mail.attachments[name] = body
312
+ def add_attachments(mail, attachments)
313
+ attachments.each do |name, body|
314
+ name = name.gsub /\s+/, ' '
315
+
316
+ # mime-types wants to send these as "quoted-printable"
317
+ if name =~ /\.xlsx$/
318
+ mail.attachments[name] = {
319
+ :content => Base64.encode64(body),
320
+ :transfer_encoding => :base64
321
+ }
322
+ else
323
+ mail.attachments[name] = body
324
+ end
325
+ mail.attachments[name].add_content_id("<#{name}@#{Socket.gethostname}>")
326
326
  end
327
- mail.attachments[name].add_content_id("<#{name}@#{Socket.gethostname}>")
328
327
  end
329
- end
330
328
 
331
- def self.sendmail_binary
332
- sendmail = `which sendmail`.chomp
333
- sendmail.empty? ? '/usr/sbin/sendmail' : sendmail
329
+ def sendmail_binary
330
+ sendmail = `which sendmail`.chomp
331
+ sendmail.empty? ? '/usr/sbin/sendmail' : sendmail
332
+ end
334
333
  end
335
334
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'pony'
5
- s.version = "1.11"
5
+ s.version = "1.12"
6
6
 
7
7
  s.summary = "Send email in one command: Pony.mail(:to => 'someone@example.com', :body => 'hello')"
8
8
  s.description = s.summary
@@ -16,5 +16,5 @@ Gem::Specification.new do |s|
16
16
  s.require_paths = ["lib"]
17
17
  s.add_runtime_dependency 'mail', '>= 2.0'
18
18
  s.add_development_dependency "rspec", ">= 2.14"
19
- s.add_development_dependency "rake", ">= 10"
19
+ s.add_development_dependency "rake"
20
20
  end
@@ -31,116 +31,116 @@ describe Pony do
31
31
 
32
32
  describe "builds a Mail object with field:" do
33
33
  it "to" do
34
- expect(Pony.build_mail(:to => 'joe@example.com').to).to eq [ 'joe@example.com' ]
34
+ expect(Pony.send(:build_mail, :to => 'joe@example.com').to).to eq [ 'joe@example.com' ]
35
35
  end
36
36
 
37
37
  it "to with multiple recipients" do
38
- expect(Pony.build_mail(:to => 'joe@example.com, friedrich@example.com').to).to eq [ 'joe@example.com', 'friedrich@example.com' ]
38
+ expect(Pony.send(:build_mail, :to => 'joe@example.com, friedrich@example.com').to).to eq [ 'joe@example.com', 'friedrich@example.com' ]
39
39
  end
40
40
 
41
41
  it "to with multiple recipients and names" do
42
- expect(Pony.build_mail(:to => 'joe@example.com, "Friedrich Hayek" <friedrich@example.com>').to).to eq [ 'joe@example.com', 'friedrich@example.com' ]
42
+ expect(Pony.send(:build_mail, :to => 'joe@example.com, "Friedrich Hayek" <friedrich@example.com>').to).to eq [ 'joe@example.com', 'friedrich@example.com' ]
43
43
  end
44
44
 
45
45
  it "to with multiple recipients and names in an array" do
46
- expect(Pony.build_mail(:to => ['joe@example.com', '"Friedrich Hayek" <friedrich@example.com>']).to).to eq [ 'joe@example.com', 'friedrich@example.com' ]
46
+ expect(Pony.send(:build_mail, :to => ['joe@example.com', '"Friedrich Hayek" <friedrich@example.com>']).to).to eq [ 'joe@example.com', 'friedrich@example.com' ]
47
47
  end
48
48
 
49
49
  it "cc" do
50
- expect(Pony.build_mail(:cc => 'joe@example.com').cc).to eq [ 'joe@example.com' ]
50
+ expect(Pony.send(:build_mail, :cc => 'joe@example.com').cc).to eq [ 'joe@example.com' ]
51
51
  end
52
52
 
53
53
  it "reply_to" do
54
- expect(Pony.build_mail(:reply_to => 'joe@example.com').reply_to).to eq [ 'joe@example.com' ]
54
+ expect(Pony.send(:build_mail, :reply_to => 'joe@example.com').reply_to).to eq [ 'joe@example.com' ]
55
55
  end
56
56
 
57
57
  it "cc with multiple recipients" do
58
- expect(Pony.build_mail(:cc => 'joe@example.com, friedrich@example.com').cc).to eq [ 'joe@example.com', 'friedrich@example.com' ]
58
+ expect(Pony.send(:build_mail, :cc => 'joe@example.com, friedrich@example.com').cc).to eq [ 'joe@example.com', 'friedrich@example.com' ]
59
59
  end
60
60
 
61
61
  it "from" do
62
- expect(Pony.build_mail(:from => 'joe@example.com').from).to eq [ 'joe@example.com' ]
62
+ expect(Pony.send(:build_mail, :from => 'joe@example.com').from).to eq [ 'joe@example.com' ]
63
63
  end
64
64
 
65
65
  it "bcc" do
66
- expect(Pony.build_mail(:bcc => 'joe@example.com').bcc).to eq [ 'joe@example.com' ]
66
+ expect(Pony.send(:build_mail, :bcc => 'joe@example.com').bcc).to eq [ 'joe@example.com' ]
67
67
  end
68
68
 
69
69
  it "bcc with multiple recipients" do
70
- expect(Pony.build_mail(:bcc => 'joe@example.com, friedrich@example.com').bcc).to eq [ 'joe@example.com', 'friedrich@example.com' ]
70
+ expect(Pony.send(:build_mail, :bcc => 'joe@example.com, friedrich@example.com').bcc).to eq [ 'joe@example.com', 'friedrich@example.com' ]
71
71
  end
72
72
 
73
73
  it "charset" do
74
- mail = Pony.build_mail(:charset => 'UTF-8')
74
+ mail = Pony.send(:build_mail, :charset => 'UTF-8')
75
75
  expect(mail.charset).to eq 'UTF-8'
76
76
  end
77
77
 
78
78
  it "text_part_charset" do
79
- mail = Pony.build_mail(:attachments => {"foo.txt" => "content of foo.txt"}, :body => 'test', :text_part_charset => 'ISO-2022-JP')
79
+ mail = Pony.send(:build_mail, :attachments => {"foo.txt" => "content of foo.txt"}, :body => 'test', :text_part_charset => 'ISO-2022-JP')
80
80
  expect(mail.text_part.charset).to eq 'ISO-2022-JP'
81
81
  end
82
82
 
83
83
  it "default charset" do
84
- expect(Pony.build_mail(body: 'body').charset).to eq 'UTF-8'
85
- expect(Pony.build_mail(html_body: 'body').charset).to eq 'UTF-8'
84
+ expect(Pony.send(:build_mail, body: 'body').charset).to eq 'UTF-8'
85
+ expect(Pony.send(:build_mail, html_body: 'body').charset).to eq 'UTF-8'
86
86
  end
87
87
 
88
88
  it "from (default)" do
89
- expect(Pony.build_mail({}).from).to eq [ 'pony@unknown' ]
89
+ expect(Pony.send(:build_mail, {}).from).to eq [ 'pony@unknown' ]
90
90
  end
91
91
 
92
92
  it "subject" do
93
- expect(Pony.build_mail(:subject => 'hello').subject).to eq 'hello'
93
+ expect(Pony.send(:build_mail, :subject => 'hello').subject).to eq 'hello'
94
94
  end
95
95
 
96
96
  it "body" do
97
- expect(Pony.build_mail(body: 'What do you know, Joe?').body)
97
+ expect(Pony.send(:build_mail, body: 'What do you know, Joe?').body)
98
98
  .to eq 'What do you know, Joe?'
99
99
  end
100
100
 
101
101
  it "html_body" do
102
- expect(Pony.build_mail(html_body: 'What do you know, Joe?').parts.first.body)
102
+ expect(Pony.send(:build_mail, html_body: 'What do you know, Joe?').parts.first.body)
103
103
  .to eq 'What do you know, Joe?'
104
- expect(Pony.build_mail(html_body: 'What do you know, Joe?').parts.first.content_type)
104
+ expect(Pony.send(:build_mail, html_body: 'What do you know, Joe?').parts.first.content_type)
105
105
  .to eq 'text/html; charset=UTF-8'
106
106
  end
107
107
 
108
108
  it 'content_type' do
109
- expect(Pony.build_mail(content_type: 'multipart/related').content_type)
109
+ expect(Pony.send(:build_mail, content_type: 'multipart/related').content_type)
110
110
  .to eq 'multipart/related'
111
111
  end
112
112
 
113
113
  it "date" do
114
114
  now = Time.now
115
- expect(Pony.build_mail(:date => now).date).to eq DateTime.parse(now.to_s)
115
+ expect(Pony.send(:build_mail, :date => now).date).to eq DateTime.parse(now.to_s)
116
116
  end
117
117
 
118
118
  it "message_id" do
119
- expect(Pony.build_mail(:message_id => '<abc@def.com>').message_id).to eq 'abc@def.com'
119
+ expect(Pony.send(:build_mail, :message_id => '<abc@def.com>').message_id).to eq 'abc@def.com'
120
120
  end
121
121
 
122
122
  it "custom headers" do
123
- expect(Pony.build_mail(:headers => {"List-ID" => "<abc@def.com>"})['List-ID'].to_s).to eq '<abc@def.com>'
123
+ expect(Pony.send(:build_mail, :headers => {"List-ID" => "<abc@def.com>"})['List-ID'].to_s).to eq '<abc@def.com>'
124
124
  end
125
125
 
126
126
  it "sender" do
127
- expect(Pony.build_mail(:sender => "abc@def.com")['Sender'].to_s).to eq 'abc@def.com'
127
+ expect(Pony.send(:build_mail, :sender => "abc@def.com")['Sender'].to_s).to eq 'abc@def.com'
128
128
  end
129
129
 
130
130
  it "utf-8 encoded subject line" do
131
- mail = Pony.build_mail(:to => 'btp@foo', :subject => 'Café', :body => 'body body body')
131
+ mail = Pony.send(:build_mail, :to => 'btp@foo', :subject => 'Café', :body => 'body body body')
132
132
  expect(mail['subject'].encoded).to match( /^Subject: =\?UTF-8/ )
133
133
  end
134
134
 
135
135
  it "attachments" do
136
- mail = Pony.build_mail(:attachments => {"foo.txt" => "content of foo.txt"}, :body => 'test')
136
+ mail = Pony.send(:build_mail, :attachments => {"foo.txt" => "content of foo.txt"}, :body => 'test')
137
137
  expect(mail.parts.length).to eq 2
138
138
  expect(mail.parts.first.to_s).to match( /Content-Type: text\/plain/ )
139
139
  expect(mail.attachments.first.content_id).to eq "<foo.txt@#{Socket.gethostname}>"
140
140
  end
141
141
 
142
142
  it "suggests mime-type" do
143
- mail = Pony.build_mail(:attachments => {"foo.pdf" => "content of foo.pdf"})
143
+ mail = Pony.send(:build_mail, :attachments => {"foo.pdf" => "content of foo.pdf"})
144
144
  expect(mail.parts.length).to eq 1
145
145
  expect(mail.parts.first.to_s).to match( /Content-Type: application\/pdf/ )
146
146
  expect(mail.parts.first.to_s).to match( /filename=foo.pdf/ )
@@ -148,7 +148,7 @@ describe Pony do
148
148
  end
149
149
 
150
150
  it "encodes xlsx files as base64" do
151
- mail = Pony.build_mail(:attachments => {"foo.xlsx" => "content of foo.xlsx"})
151
+ mail = Pony.send(:build_mail, :attachments => {"foo.xlsx" => "content of foo.xlsx"})
152
152
  expect(mail.parts.length).to eq 1
153
153
  expect(mail.parts.first.to_s).to match( /Content-Type: application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet/ )
154
154
  expect(mail.parts.first.to_s).to match( /filename=foo.xlsx/ )
@@ -156,7 +156,7 @@ describe Pony do
156
156
  end
157
157
 
158
158
  it "passes cc and bcc as the list of recipients" do
159
- mail = Pony.build_mail(:to => ['to'], :cc => ['cc'], :from => ['from'], :bcc => ['bcc'])
159
+ mail = Pony.send(:build_mail, :to => ['to'], :cc => ['cc'], :from => ['from'], :bcc => ['bcc'])
160
160
  expect(mail.destinations).to eq ['to', 'cc', 'bcc']
161
161
  end
162
162
  end
@@ -177,12 +177,12 @@ describe Pony do
177
177
  describe "SMTP transport" do
178
178
 
179
179
  it "defaults to localhost as the SMTP server" do
180
- mail = Pony.build_mail(:to => "foo@bar", :enable_starttls_auto => true, :via => :smtp)
180
+ mail = Pony.send(:build_mail, :to => "foo@bar", :enable_starttls_auto => true, :via => :smtp)
181
181
  expect(mail.delivery_method.settings[:address]).to eq 'localhost'
182
182
  end
183
183
 
184
184
  it "enable starttls when tls option is true" do
185
- mail = Pony.build_mail(:to => "foo@bar", :enable_starttls_auto => true, :via => :smtp)
185
+ mail = Pony.send(:build_mail, :to => "foo@bar", :enable_starttls_auto => true, :via => :smtp)
186
186
  expect(mail.delivery_method.settings[:enable_starttls_auto]).to eq true
187
187
  end
188
188
  end
@@ -190,12 +190,12 @@ describe Pony do
190
190
 
191
191
  describe ":via option should over-ride the default transport mechanism" do
192
192
  it "should send via sendmail if :via => sendmail" do
193
- mail = Pony.build_mail(:to => 'joe@example.com', :via => :sendmail)
193
+ mail = Pony.send(:build_mail, :to => 'joe@example.com', :via => :sendmail)
194
194
  expect(mail.delivery_method.kind_of?(Mail::Sendmail)).to eq true
195
195
  end
196
196
 
197
197
  it "should send via smtp if :via => smtp" do
198
- mail = Pony.build_mail(:to => 'joe@example.com', :via => :smtp)
198
+ mail = Pony.send(:build_mail, :to => 'joe@example.com', :via => :smtp)
199
199
  expect(mail.delivery_method.kind_of?(Mail::SMTP)).to eq true
200
200
  end
201
201
 
@@ -204,7 +204,7 @@ describe Pony do
204
204
  describe "sendmail binary location" do
205
205
  it "should default to /usr/sbin/sendmail if not in path" do
206
206
  allow(Pony).to receive(:'`').and_return('')
207
- expect(Pony.sendmail_binary).to eq '/usr/sbin/sendmail'
207
+ expect(Pony.send(:sendmail_binary)).to eq '/usr/sbin/sendmail'
208
208
  end
209
209
  end
210
210
 
@@ -303,7 +303,7 @@ describe Pony do
303
303
  describe "content type" do
304
304
  context "mail with attachments, html_body and body " do
305
305
  subject(:mail) do
306
- Pony.build_mail(
306
+ Pony.send(:build_mail,
307
307
  :body => 'test',
308
308
  :html_body => 'What do you know, Joe?',
309
309
  :attachments => {"foo.txt" => "content of foo.txt"},
@@ -322,7 +322,7 @@ describe Pony do
322
322
 
323
323
  describe "additional headers" do
324
324
  subject(:mail) do
325
- Pony.build_mail(
325
+ Pony.send(:build_mail,
326
326
  :body => 'test',
327
327
  :html_body => 'What do you know, Joe?',
328
328
  :attachments => {"foo.txt" => "content of foo.txt"},
@@ -336,7 +336,7 @@ describe Pony do
336
336
 
337
337
  context "when parts aren't present" do
338
338
  subject(:mail) do
339
- Pony.build_mail(
339
+ Pony.send(:build_mail,
340
340
  :body => 'test',
341
341
  :body_part_header => { content_disposition: "inline"},
342
342
  :html_body_part_header => { content_disposition: "inline"}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pony
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.11'
4
+ version: '1.12'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Wiggins
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-11 00:00:00.000000000 Z
12
+ date: 2017-12-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mail
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: '10'
48
+ version: '0'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: '10'
55
+ version: '0'
56
56
  description: 'Send email in one command: Pony.mail(:to => ''someone@example.com'',
57
57
  :body => ''hello'')'
58
58
  email: ben@throwingbones.com
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  version: '0'
89
89
  requirements: []
90
90
  rubyforge_project:
91
- rubygems_version: 2.2.2
91
+ rubygems_version: 2.6.14
92
92
  signing_key:
93
93
  specification_version: 4
94
94
  summary: 'Send email in one command: Pony.mail(:to => ''someone@example.com'', :body