pony 1.8 → 1.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 306baec4e44b3d4c866118d06d7b6fe47644f1b0
4
- data.tar.gz: e7aa58fb5549b1ffc88e5949e035a4f43dbb206f
3
+ metadata.gz: 9e71b53cc0803fe9e1f8648ae097a633aeb0b371
4
+ data.tar.gz: 43f71c33f354a576a53c420fe857084c5aeea1ee
5
5
  SHA512:
6
- metadata.gz: cba682e447d4636d7b01e6ad25ea1218fc01ec0365051e7690c6572471dddcfaf6337243a0e6afcfb48022993dc95db89d7d6e38c4dc021ff20c26c2c657b98b
7
- data.tar.gz: 8e2914fcfd9066c24f520dac70d5ac9ea4b3b7c5a0e2bebdf6e876d577aee41c1ee2bf9eb5cdcfd15c43245415130dd8839d02cd385e4228eb1b90bdd362d97d
6
+ metadata.gz: 289cc47015308df12027fe7df67297002a2e888a0dbfc00b9b6300e6dfb9ac25094f96184bec2f411233061f8ec327a1074f8eb21796dcacf7b9ef757a6dce50
7
+ data.tar.gz: df00f49c87634ed310c1a5d36e36d3c537c2030d5258c8b54c1e31c04f359effa663fbd9fe9f888a120a6af3cbe1f0e86cb600d2ca82a81f9ea104c6c465e214
data/README.rdoc CHANGED
@@ -97,7 +97,12 @@ Also you can add additional options for html part of latter, e.g.:
97
97
 
98
98
  == List Of Options
99
99
 
100
+ You can get a list of options from Pony directly:
101
+
102
+ Pony.permissable_options
103
+
100
104
  Options passed pretty much directly to Mail
105
+
101
106
  to
102
107
  cc
103
108
  bcc
@@ -168,6 +173,9 @@ mailing list: ponyrb@googlegroups.com
168
173
 
169
174
 
170
175
  == Releases
176
+ 1.9
177
+ * Allow options to be queried from the gem
178
+
171
179
  1.8
172
180
  * Add additional options for headers in each part of letter
173
181
 
data/lib/pony.rb CHANGED
@@ -106,6 +106,8 @@ module Pony
106
106
 
107
107
  @@options = {}
108
108
 
109
+
110
+
109
111
  # Default options can be set so that they don't have to be repeated.
110
112
  #
111
113
  # Pony.options = { :from => 'noreply@example.com', :via => :smtp, :via_options => { :host => 'smtp.yourserver.com' } }
@@ -137,6 +139,10 @@ module Pony
137
139
  deliver build_mail(options)
138
140
  end
139
141
 
142
+ def self.permissable_options
143
+ standard_options + non_standard_options
144
+ end
145
+
140
146
  private
141
147
 
142
148
  def self.deliver(mail)
@@ -147,28 +153,45 @@ module Pony
147
153
  File.executable?(sendmail_binary) ? :sendmail : :smtp
148
154
  end
149
155
 
156
+ def self.standard_options
157
+ [
158
+ :to,
159
+ :cc,
160
+ :bcc,
161
+ :from,
162
+ :subject,
163
+ :content_type,
164
+ :message_id,
165
+ :sender,
166
+ :reply_to,
167
+ :smtp_envelope_to
168
+ ]
169
+ end
170
+
171
+ def self.non_standard_options
172
+ [
173
+ :attachments,
174
+ :body,
175
+ :charset,
176
+ :enable_starttls_auto,
177
+ :headers,
178
+ :html_body,
179
+ :text_part_charset,
180
+ :via,
181
+ :via_options,
182
+ :body_part_header,
183
+ :html_body_part_header
184
+ ]
185
+ end
186
+
150
187
  def self.build_mail(options)
151
188
  mail = Mail.new do |m|
152
189
  options[:date] ||= Time.now
153
190
  options[:from] ||= 'pony@unknown'
154
191
  options[:via_options] ||= {}
155
192
 
156
- non_standard_options = [
157
- :attachments,
158
- :body,
159
- :charset,
160
- :enable_starttls_auto,
161
- :headers,
162
- :html_body,
163
- :text_part_charset,
164
- :via,
165
- :via_options,
166
- :body_part_header,
167
- :html_body_part_header
168
- ]
169
-
170
193
  options.each do |k, v|
171
- next if non_standard_options.include?(k)
194
+ next if Pony.non_standard_options.include?(k)
172
195
  m.send(k, v)
173
196
  end
174
197
 
data/pony.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'pony'
5
- s.version = "1.8"
5
+ s.version = "1.9"
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
data/spec/pony_spec.rb CHANGED
@@ -4,7 +4,7 @@ require File.dirname(__FILE__) + '/base'
4
4
  describe Pony do
5
5
 
6
6
  before(:each) do
7
- Pony.stub(:deliver)
7
+ allow(Pony).to receive(:deliver)
8
8
  end
9
9
 
10
10
  it "sends mail" do
@@ -25,6 +25,10 @@ describe Pony do
25
25
  expect{ Pony.mail(:to => 'joe@example.com') }.to_not raise_error
26
26
  end
27
27
 
28
+ it 'can list its available options' do
29
+ expect( Pony.permissable_options ).to include(:to, :body)
30
+ end
31
+
28
32
  describe "builds a Mail object with field:" do
29
33
  it "to" do
30
34
  expect(Pony.build_mail(:to => 'joe@example.com').to).to eq [ 'joe@example.com' ]
@@ -159,13 +163,13 @@ describe Pony do
159
163
 
160
164
  describe "transport" do
161
165
  it "transports via smtp if no sendmail binary" do
162
- Pony.stub(:sendmail_binary).and_return('/does/not/exist')
166
+ allow(Pony).to receive(:sendmail_binary).and_return('/does/not/exist')
163
167
  expect(Pony).to receive(:build_mail).with(hash_including(:via => :smtp))
164
168
  Pony.mail(:to => 'foo@bar')
165
169
  end
166
170
 
167
171
  it "defaults to sendmail if no via is specified and sendmail exists" do
168
- File.stub(:executable?).and_return(true)
172
+ allow(File).to receive(:executable?).and_return(true)
169
173
  expect(Pony).to receive(:build_mail).with(hash_including(:via => :sendmail))
170
174
  Pony.mail(:to => 'foo@bar')
171
175
  end
@@ -199,7 +203,7 @@ describe Pony do
199
203
 
200
204
  describe "sendmail binary location" do
201
205
  it "should default to /usr/sbin/sendmail if not in path" do
202
- Pony.stub(:'`').and_return('')
206
+ allow(Pony).to receive(:'`').and_return('')
203
207
  expect(Pony.sendmail_binary).to eq '/usr/sbin/sendmail'
204
208
  end
205
209
  end
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.8'
4
+ version: '1.9'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Wiggins
@@ -9,34 +9,34 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-09 00:00:00.000000000 Z
12
+ date: 2014-06-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mail
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '2.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '2.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rspec
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '>='
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: '2.14'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - '>='
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '2.14'
42
42
  description: 'Send email in one command: Pony.mail(:to => ''someone@example.com'',
@@ -48,8 +48,8 @@ extra_rdoc_files: []
48
48
  files:
49
49
  - README.rdoc
50
50
  - Rakefile
51
- - pony.gemspec
52
51
  - lib/pony.rb
52
+ - pony.gemspec
53
53
  - spec/base.rb
54
54
  - spec/pony_spec.rb
55
55
  homepage: http://github.com/benprew/pony
@@ -58,23 +58,23 @@ licenses:
58
58
  metadata: {}
59
59
  post_install_message:
60
60
  rdoc_options:
61
- - --inline-source
62
- - --charset=UTF-8
61
+ - "--inline-source"
62
+ - "--charset=UTF-8"
63
63
  require_paths:
64
64
  - lib
65
65
  required_ruby_version: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>='
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - '>='
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  requirements: []
76
76
  rubyforge_project:
77
- rubygems_version: 2.0.3
77
+ rubygems_version: 2.2.2
78
78
  signing_key:
79
79
  specification_version: 4
80
80
  summary: 'Send email in one command: Pony.mail(:to => ''someone@example.com'', :body