sendgrid-actionmailer 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 74b9a08b495843840fdc6823142f28de25914d7b
4
- data.tar.gz: 6e5fbd4cb655775fe3a67757479dafb41d32b55a
3
+ metadata.gz: 44c5c216019a73007baba29b9b5450462bbb2c1e
4
+ data.tar.gz: 829fd2abebfe9a8df103d08eca23deb8134497e3
5
5
  SHA512:
6
- metadata.gz: 3ae8a64dc6b4f7e77eb5ab7226c2ba8b43e1ee5296f6b26817632b080efc238ba14ce41e9360768b54444cca4c41df047cf17d5823b5be9b1cbb474b9ab0afb9
7
- data.tar.gz: d336ebf3f2d0659abfc158bdd585641db23c74271af318afc14f76b5c75009a11e8f358aa78d9a66b12c964e33d7d0d9578731cc10b7f57d624d94a7c707d892
6
+ metadata.gz: 57619a1532efc305dd82c2d13eab842f5c290703893c98398f03a0f1b69f564e01408869f55ba7c77087d0786265cd11db6f471eea26cc76cc7227c0d89c7f50
7
+ data.tar.gz: 27f6f546ddecd1e3f8f2538047f72435a8d6931b867361bccf3bb3ed4c201a22cb1a2f570b29c7723bfd016038938920ffa0d3d29c72d831668c8940eea877ce
@@ -1,33 +1,32 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- sendgrid-actionmailer (0.0.5)
4
+ sendgrid-actionmailer (0.1.1)
5
5
  mail (~> 2.5)
6
- sendgrid-ruby (~> 0.0)
6
+ sendgrid-ruby (< 2.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
+ addressable (2.4.0)
11
12
  appraisal (2.1.0)
12
13
  bundler
13
14
  rake
14
15
  thor (>= 0.14.0)
16
+ crack (0.4.3)
17
+ safe_yaml (~> 1.0.0)
15
18
  diff-lcs (1.2.5)
16
- domain_name (0.5.20160310)
17
- unf (>= 0.0.5, < 1.0.0)
18
- http-cookie (1.0.2)
19
- domain_name (~> 0.5)
19
+ faraday (0.9.2)
20
+ multipart-post (>= 1.2, < 3)
21
+ hashdiff (0.3.0)
20
22
  mail (2.5.4)
21
23
  mime-types (~> 1.16)
22
24
  treetop (~> 1.4.8)
23
25
  mime-types (1.25.1)
24
- netrc (0.11.0)
26
+ mimemagic (0.3.1)
27
+ multipart-post (2.0.0)
25
28
  polyglot (0.3.5)
26
29
  rake (11.1.2)
27
- rest-client (1.8.0)
28
- http-cookie (>= 1.0.2, < 2.0)
29
- mime-types (>= 1.16, < 3.0)
30
- netrc (~> 0.7)
31
30
  rspec (3.2.0)
32
31
  rspec-core (~> 3.2.0)
33
32
  rspec-expectations (~> 3.2.0)
@@ -41,17 +40,20 @@ GEM
41
40
  diff-lcs (>= 1.2.0, < 2.0)
42
41
  rspec-support (~> 3.2.0)
43
42
  rspec-support (3.2.2)
44
- sendgrid-ruby (0.0.3)
45
- rest-client
46
- smtpapi
43
+ safe_yaml (1.0.4)
44
+ sendgrid-ruby (1.1.6)
45
+ faraday (~> 0.9)
46
+ mimemagic
47
+ smtpapi (~> 0.1)
47
48
  smtpapi (0.1.0)
48
49
  thor (0.19.1)
49
50
  treetop (1.4.15)
50
51
  polyglot
51
52
  polyglot (>= 0.3.1)
52
- unf (0.1.4)
53
- unf_ext
54
- unf_ext (0.0.7.2)
53
+ webmock (1.24.6)
54
+ addressable (>= 2.3.6)
55
+ crack (>= 0.3.2)
56
+ hashdiff
55
57
 
56
58
  PLATFORMS
57
59
  ruby
@@ -63,6 +65,7 @@ DEPENDENCIES
63
65
  rake
64
66
  rspec (~> 3.2.0)
65
67
  sendgrid-actionmailer!
68
+ webmock (~> 1.24.6)
66
69
 
67
70
  BUNDLED WITH
68
71
  1.11.2
@@ -1,31 +1,30 @@
1
1
  PATH
2
2
  remote: ../
3
3
  specs:
4
- sendgrid-actionmailer (0.0.5)
4
+ sendgrid-actionmailer (0.1.1)
5
5
  mail (~> 2.5)
6
- sendgrid-ruby (~> 0.0)
6
+ sendgrid-ruby (< 2.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
+ addressable (2.4.0)
11
12
  appraisal (2.1.0)
12
13
  bundler
13
14
  rake
14
15
  thor (>= 0.14.0)
16
+ crack (0.4.3)
17
+ safe_yaml (~> 1.0.0)
15
18
  diff-lcs (1.2.5)
16
- domain_name (0.5.20160310)
17
- unf (>= 0.0.5, < 1.0.0)
18
- http-cookie (1.0.2)
19
- domain_name (~> 0.5)
19
+ faraday (0.9.2)
20
+ multipart-post (>= 1.2, < 3)
21
+ hashdiff (0.3.0)
20
22
  mail (2.6.4)
21
23
  mime-types (>= 1.16, < 4)
22
24
  mime-types (2.99.1)
23
- netrc (0.11.0)
25
+ mimemagic (0.3.1)
26
+ multipart-post (2.0.0)
24
27
  rake (11.1.2)
25
- rest-client (1.8.0)
26
- http-cookie (>= 1.0.2, < 2.0)
27
- mime-types (>= 1.16, < 3.0)
28
- netrc (~> 0.7)
29
28
  rspec (3.2.0)
30
29
  rspec-core (~> 3.2.0)
31
30
  rspec-expectations (~> 3.2.0)
@@ -39,14 +38,17 @@ GEM
39
38
  diff-lcs (>= 1.2.0, < 2.0)
40
39
  rspec-support (~> 3.2.0)
41
40
  rspec-support (3.2.2)
42
- sendgrid-ruby (0.0.3)
43
- rest-client
44
- smtpapi
41
+ safe_yaml (1.0.4)
42
+ sendgrid-ruby (1.1.6)
43
+ faraday (~> 0.9)
44
+ mimemagic
45
+ smtpapi (~> 0.1)
45
46
  smtpapi (0.1.0)
46
47
  thor (0.19.1)
47
- unf (0.1.4)
48
- unf_ext
49
- unf_ext (0.0.7.2)
48
+ webmock (1.24.6)
49
+ addressable (>= 2.3.6)
50
+ crack (>= 0.3.2)
51
+ hashdiff
50
52
 
51
53
  PLATFORMS
52
54
  ruby
@@ -58,6 +60,7 @@ DEPENDENCIES
58
60
  rake
59
61
  rspec (~> 3.2.0)
60
62
  sendgrid-actionmailer!
63
+ webmock (~> 1.24.6)
61
64
 
62
65
  BUNDLED WITH
63
66
  1.11.2
@@ -1,3 +1,3 @@
1
1
  module SendGridActionMailer
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -17,6 +17,7 @@ module SendGridActionMailer
17
17
  end
18
18
 
19
19
  def deliver!(mail)
20
+ attachment_tempfiles = []
20
21
  from = mail[:from].addrs.first
21
22
 
22
23
  email = SendGrid::Mail.new do |m|
@@ -87,20 +88,26 @@ module SendGridActionMailer
87
88
 
88
89
  # This needs to be done better
89
90
  mail.attachments.each do |a|
90
- begin
91
- t = Tempfile.new("sendgrid-actionmailer")
92
- t.binmode
93
- t.write(a.read)
94
- t.flush
95
- email.add_attachment(t, a.filename)
96
- ensure
97
- t.close
98
- t.unlink
99
- end
91
+ # Create a tempfile with the same file extension as the real file
92
+ # for sendgrid-ruby's mime type lookups.
93
+ t = Tempfile.new(["sendgrid-actionmailer", File.extname(a.filename)])
94
+ t.binmode
95
+ t.write(a.read)
96
+ t.flush
97
+ t.rewind
98
+ email.add_attachment(t, a.filename)
99
+ attachment_tempfiles << t
100
100
  end
101
101
  end
102
102
 
103
103
  client.send(email)
104
+ ensure
105
+ # Close and delete the attachment tempfiles after the e-mail has been
106
+ # sent.
107
+ attachment_tempfiles.each do |file|
108
+ file.close
109
+ file.unlink
110
+ end
104
111
  end
105
112
  end
106
113
  end
@@ -6,8 +6,8 @@ require 'sendgrid_actionmailer/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'sendgrid-actionmailer'
8
8
  spec.version = SendGridActionMailer::VERSION
9
- spec.authors = ['Eddie Zaneski']
10
- spec.email = ['community@sendgrid.com']
9
+ spec.authors = ['Eddie Zaneski', 'Kristján Pétursson', 'Nick Muerdter']
10
+ spec.email = ['eddiezane@gmail.com', 'kristjan@gmail.com', 'stuff@nickm.org']
11
11
  spec.summary = %q{SendGrid support for ActionMailer.}
12
12
  spec.description = %q{Use ActionMailer with SendGrid's Web API.}
13
13
  spec.homepage = 'https://github.com/eddiezane/sendgrid-actionmailer'
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency 'rake'
26
26
  spec.add_development_dependency 'rspec', '~>3.2.0'
27
27
  spec.add_development_dependency 'appraisal', '~> 2.1.0'
28
+ spec.add_development_dependency 'webmock', '~> 1.24.6'
28
29
  end
@@ -1,4 +1,5 @@
1
1
  require 'mail'
2
+ require 'webmock/rspec'
2
3
 
3
4
  module SendGridActionMailer
4
5
  describe DeliveryMethod do
@@ -6,11 +7,12 @@ module SendGridActionMailer
6
7
  DeliveryMethod.new(api_user: 'user', api_key: 'key')
7
8
  end
8
9
 
9
- class TestClient
10
+ class TestClient < SendGrid::Client
10
11
  attr_reader :sent_mail
11
12
 
12
13
  def send(mail)
13
14
  @sent_mail = mail
15
+ super(mail)
14
16
  end
15
17
  end
16
18
 
@@ -34,7 +36,11 @@ module SendGridActionMailer
34
36
  )
35
37
  end
36
38
 
37
- before { allow(SendGrid::Client).to receive(:new).and_return(client) }
39
+ before do
40
+ stub_request(:any, 'https://api.sendgrid.com/api/mail.send.json')
41
+ .to_return(body: {message: 'success'}.to_json, status: 200, headers: {'X-TEST' => 'yes'})
42
+ allow(SendGrid::Client).to receive(:new).and_return(client)
43
+ end
38
44
 
39
45
  it 'sets to' do
40
46
  mailer.deliver!(mail)
@@ -156,6 +162,7 @@ module SendGridActionMailer
156
162
  mailer.deliver!(mail)
157
163
  attachment = client.sent_mail.attachments.first
158
164
  expect(attachment[:name]).to eq('specs.rb')
165
+ expect(attachment[:file].content_type.to_s).to eq('application/x-ruby')
159
166
  end
160
167
  end
161
168
 
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendgrid-actionmailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eddie Zaneski
8
+ - Kristján Pétursson
9
+ - Nick Muerdter
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2016-04-23 00:00:00.000000000 Z
13
+ date: 2016-04-25 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: mail
@@ -94,9 +96,25 @@ dependencies:
94
96
  - - "~>"
95
97
  - !ruby/object:Gem::Version
96
98
  version: 2.1.0
99
+ - !ruby/object:Gem::Dependency
100
+ name: webmock
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: 1.24.6
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: 1.24.6
97
113
  description: Use ActionMailer with SendGrid's Web API.
98
114
  email:
99
- - community@sendgrid.com
115
+ - eddiezane@gmail.com
116
+ - kristjan@gmail.com
117
+ - stuff@nickm.org
100
118
  executables: []
101
119
  extensions: []
102
120
  extra_rdoc_files: []