sendgrid-ruby 1.1.6 → 3.0.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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE +17 -0
  3. data/.travis.yml +1 -6
  4. data/CHANGELOG.md +6 -0
  5. data/CONTRIBUTING.md +202 -0
  6. data/Gemfile +3 -5
  7. data/LICENSE.txt +1 -1
  8. data/README.md +74 -248
  9. data/Rakefile +8 -6
  10. data/USAGE.md +4645 -0
  11. data/examples/accesssettings/accesssettings.rb +89 -0
  12. data/examples/apikeys/apikeys.rb +95 -0
  13. data/examples/asm/asm.rb +169 -0
  14. data/examples/browsers/browsers.rb +29 -0
  15. data/examples/campaigns/campaigns.rb +166 -0
  16. data/examples/categories/categories.rb +49 -0
  17. data/examples/clients/clients.rb +40 -0
  18. data/examples/contactdb/contactdb.rb +398 -0
  19. data/examples/devices/devices.rb +29 -0
  20. data/examples/geo/geo.rb +29 -0
  21. data/examples/helpers/mail/example.rb +130 -0
  22. data/examples/ips/ips.rb +167 -0
  23. data/examples/mail/mail.rb +191 -0
  24. data/examples/mailboxproviders/mailboxproviders.rb +29 -0
  25. data/examples/mailsettings/mailsettings.rb +232 -0
  26. data/examples/partnersettings/partnersettings.rb +52 -0
  27. data/examples/scopes/scopes.rb +28 -0
  28. data/examples/stats/stats.rb +29 -0
  29. data/examples/subusers/subusers.rb +182 -0
  30. data/examples/suppression/suppression.rb +186 -0
  31. data/examples/templates/templates.rb +142 -0
  32. data/examples/trackingsettings/trackingsettings.rb +123 -0
  33. data/examples/user/user.rb +256 -0
  34. data/examples/whitelabel/whitelabel.rb +323 -0
  35. data/lib/helpers/mail/README.md +14 -0
  36. data/lib/helpers/mail/mail.rb +999 -0
  37. data/lib/sendgrid-ruby.rb +33 -8
  38. data/sendgrid-ruby.gemspec +5 -17
  39. data/test/helpers/mail/test_mail.rb +122 -0
  40. data/test/test_sendgrid-ruby.rb +2016 -0
  41. metadata +42 -190
  42. data/.env_sample +0 -3
  43. data/.rspec +0 -2
  44. data/.rubocop.yml +0 -30
  45. data/FETCH_HEAD +0 -0
  46. data/Guardfile +0 -10
  47. data/example.rb +0 -41
  48. data/lib/sendgrid/client.rb +0 -62
  49. data/lib/sendgrid/exceptions.rb +0 -7
  50. data/lib/sendgrid/mail.rb +0 -182
  51. data/lib/sendgrid/recipient.rb +0 -29
  52. data/lib/sendgrid/response.rb +0 -14
  53. data/lib/sendgrid/template.rb +0 -26
  54. data/lib/sendgrid/template_mailer.rb +0 -59
  55. data/lib/sendgrid/version.rb +0 -3
  56. data/spec/lib/sendgrid/client_spec.rb +0 -87
  57. data/spec/lib/sendgrid/mail_spec.rb +0 -151
  58. data/spec/lib/sendgrid/recipient_spec.rb +0 -91
  59. data/spec/lib/sendgrid/template_mailer_spec.rb +0 -86
  60. data/spec/lib/sendgrid/template_spec.rb +0 -61
  61. data/spec/lib/sendgrid_spec.rb +0 -7
  62. data/spec/spec_helper.rb +0 -1
metadata CHANGED
@@ -1,234 +1,91 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendgrid-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.6
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Elmer Thomas
7
8
  - Robin Johnson
8
9
  - Eddie Zaneski
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2015-11-27 00:00:00.000000000 Z
13
+ date: 2016-06-14 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
- name: smtpapi
16
+ name: ruby_http_client
16
17
  requirement: !ruby/object:Gem::Requirement
17
18
  requirements:
18
19
  - - "~>"
19
20
  - !ruby/object:Gem::Version
20
- version: '0.1'
21
+ version: 2.1.1
21
22
  type: :runtime
22
23
  prerelease: false
23
24
  version_requirements: !ruby/object:Gem::Requirement
24
25
  requirements:
25
26
  - - "~>"
26
27
  - !ruby/object:Gem::Version
27
- version: '0.1'
28
- - !ruby/object:Gem::Dependency
29
- name: faraday
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - "~>"
33
- - !ruby/object:Gem::Version
34
- version: '0.9'
35
- type: :runtime
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: '0.9'
42
- - !ruby/object:Gem::Dependency
43
- name: mimemagic
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: '0'
49
- type: :runtime
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: '0'
28
+ version: 2.1.1
56
29
  - !ruby/object:Gem::Dependency
57
30
  name: rake
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- - !ruby/object:Gem::Dependency
71
- name: rspec
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: '0'
84
- - !ruby/object:Gem::Dependency
85
- name: rspec-nc
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: '0'
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
- - !ruby/object:Gem::Dependency
99
- name: webmock
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- version: '0'
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: '0'
112
- - !ruby/object:Gem::Dependency
113
- name: guard
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: '0'
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: guard-rspec
128
- requirement: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- version: '0'
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: '0'
140
- - !ruby/object:Gem::Dependency
141
- name: rubocop
142
- requirement: !ruby/object:Gem::Requirement
143
- requirements:
144
- - - ">="
145
- - !ruby/object:Gem::Version
146
- version: '0'
147
- type: :development
148
- prerelease: false
149
- version_requirements: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - ">="
152
- - !ruby/object:Gem::Version
153
- version: '0'
154
- - !ruby/object:Gem::Dependency
155
- name: guard-rubocop
156
- requirement: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- version: '0'
161
- type: :development
162
- prerelease: false
163
- version_requirements: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - ">="
166
- - !ruby/object:Gem::Version
167
- version: '0'
168
- - !ruby/object:Gem::Dependency
169
- name: ruby_gntp
170
- requirement: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - ">="
173
- - !ruby/object:Gem::Version
174
- version: '0'
175
- type: :development
176
- prerelease: false
177
- version_requirements: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- version: '0'
182
- - !ruby/object:Gem::Dependency
183
- name: bundler
184
31
  requirement: !ruby/object:Gem::Requirement
185
32
  requirements:
186
33
  - - "~>"
187
34
  - !ruby/object:Gem::Version
188
- version: '1.6'
35
+ version: '0'
189
36
  type: :development
190
37
  prerelease: false
191
38
  version_requirements: !ruby/object:Gem::Requirement
192
39
  requirements:
193
40
  - - "~>"
194
41
  - !ruby/object:Gem::Version
195
- version: '1.6'
42
+ version: '0'
196
43
  description: Interact with SendGrids API in native Ruby
197
- email: community@sendgrid.com
44
+ email: dx@sendgrid.com
198
45
  executables: []
199
46
  extensions: []
200
47
  extra_rdoc_files: []
201
48
  files:
202
- - ".env_sample"
49
+ - ".github/ISSUE_TEMPLATE"
203
50
  - ".gitignore"
204
- - ".rspec"
205
- - ".rubocop.yml"
206
51
  - ".travis.yml"
207
52
  - CHANGELOG.md
208
- - FETCH_HEAD
53
+ - CONTRIBUTING.md
209
54
  - Gemfile
210
- - Guardfile
211
55
  - LICENSE.txt
212
56
  - README.md
213
57
  - Rakefile
214
- - example.rb
58
+ - USAGE.md
59
+ - examples/accesssettings/accesssettings.rb
60
+ - examples/apikeys/apikeys.rb
61
+ - examples/asm/asm.rb
62
+ - examples/browsers/browsers.rb
63
+ - examples/campaigns/campaigns.rb
64
+ - examples/categories/categories.rb
65
+ - examples/clients/clients.rb
66
+ - examples/contactdb/contactdb.rb
67
+ - examples/devices/devices.rb
68
+ - examples/geo/geo.rb
69
+ - examples/helpers/mail/example.rb
70
+ - examples/ips/ips.rb
71
+ - examples/mail/mail.rb
72
+ - examples/mailboxproviders/mailboxproviders.rb
73
+ - examples/mailsettings/mailsettings.rb
74
+ - examples/partnersettings/partnersettings.rb
75
+ - examples/scopes/scopes.rb
76
+ - examples/stats/stats.rb
77
+ - examples/subusers/subusers.rb
78
+ - examples/suppression/suppression.rb
79
+ - examples/templates/templates.rb
80
+ - examples/trackingsettings/trackingsettings.rb
81
+ - examples/user/user.rb
82
+ - examples/whitelabel/whitelabel.rb
83
+ - lib/helpers/mail/README.md
84
+ - lib/helpers/mail/mail.rb
215
85
  - lib/sendgrid-ruby.rb
216
- - lib/sendgrid/client.rb
217
- - lib/sendgrid/exceptions.rb
218
- - lib/sendgrid/mail.rb
219
- - lib/sendgrid/recipient.rb
220
- - lib/sendgrid/response.rb
221
- - lib/sendgrid/template.rb
222
- - lib/sendgrid/template_mailer.rb
223
- - lib/sendgrid/version.rb
224
86
  - sendgrid-ruby.gemspec
225
- - spec/lib/sendgrid/client_spec.rb
226
- - spec/lib/sendgrid/mail_spec.rb
227
- - spec/lib/sendgrid/recipient_spec.rb
228
- - spec/lib/sendgrid/template_mailer_spec.rb
229
- - spec/lib/sendgrid/template_spec.rb
230
- - spec/lib/sendgrid_spec.rb
231
- - spec/spec_helper.rb
87
+ - test/helpers/mail/test_mail.rb
88
+ - test/test_sendgrid-ruby.rb
232
89
  homepage: http://github.com/sendgrid/sendgrid-ruby
233
90
  licenses:
234
91
  - MIT
@@ -254,10 +111,5 @@ signing_key:
254
111
  specification_version: 4
255
112
  summary: Official SendGrid Gem
256
113
  test_files:
257
- - spec/lib/sendgrid/client_spec.rb
258
- - spec/lib/sendgrid/mail_spec.rb
259
- - spec/lib/sendgrid/recipient_spec.rb
260
- - spec/lib/sendgrid/template_mailer_spec.rb
261
- - spec/lib/sendgrid/template_spec.rb
262
- - spec/lib/sendgrid_spec.rb
263
- - spec/spec_helper.rb
114
+ - test/helpers/mail/test_mail.rb
115
+ - test/test_sendgrid-ruby.rb
data/.env_sample DELETED
@@ -1,3 +0,0 @@
1
- SENDGRID_USERNAME=your_sendgrid_username
2
- SENDGRID_PASSWORD=your_sendgrid_password
3
- SENDGRID_APIKEY=your_sendgrid_apikey
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --require spec_helper
data/.rubocop.yml DELETED
@@ -1,30 +0,0 @@
1
- Metrics/AbcSize:
2
- Max: 37
3
-
4
- # Configuration parameters: CountComments.
5
- Metrics/ClassLength:
6
- Max: 109
7
-
8
- Metrics/CyclomaticComplexity:
9
- Max: 7
10
-
11
- # Configuration parameters: AllowURI, URISchemes.
12
- Metrics/LineLength:
13
- Max: 132
14
-
15
- # Configuration parameters: CountComments.
16
- Metrics/MethodLength:
17
- Max: 22
18
-
19
- Style/Documentation:
20
- Enabled: false
21
-
22
- # Cop supports --auto-correct.
23
- # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
24
- Style/SpaceInsideBlockBraces:
25
- Enabled: false
26
-
27
- # Cop supports --auto-correct.
28
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles.
29
- Style/SpaceInsideHashLiteralBraces:
30
- Enabled: false
data/FETCH_HEAD DELETED
File without changes
data/Guardfile DELETED
@@ -1,10 +0,0 @@
1
- notification :gntp
2
- guard :rspec, cmd: 'rspec' do
3
- watch(%r{^spec/.+_spec\.rb$})
4
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
5
- watch('spec/spec_helper.rb') { 'spec' }
6
- end
7
-
8
- guard :rubocop, all_on_start: false do
9
- watch(%r{^lib/(.+)\.rb$})
10
- end
data/example.rb DELETED
@@ -1,41 +0,0 @@
1
- # test using: ruby example.rb
2
- # using ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
3
- # attachment is sent but only a corrupted 1k file
4
-
5
-
6
- require_relative "lib/sendgrid-ruby.rb"
7
-
8
- require 'dotenv'
9
- Dotenv.load
10
-
11
- # sendgrid_username = ENV['SENDGRID_USERNAME']
12
- # sendgrid_password = ENV['SENDGRID_PASSWORD']
13
- sendgrid_apikey = ENV['SENDGRID_APIKEY']
14
-
15
- # client = SendGrid::Client.new(api_user: sendgrid_username, api_key: sendgrid_password)
16
-
17
- client = SendGrid::Client.new do |c|
18
- # c.api_user = sendgrid_username
19
- c.api_key = sendgrid_apikey
20
- end
21
-
22
- mail = SendGrid::Mail.new do |m|
23
- m.to = 'to@example.com'
24
- m.to_name = 'John Doe'
25
- m.from = 'from@example.com'
26
- m.from_name = 'Jane Doe'
27
- m.cc = 'cc@example.com'
28
- m.cc_name = 'John Doe CC'
29
- m.bcc = 'bcc@examlpe.com'
30
- m.bcc_name = 'Jane Doe BCC'
31
- m.subject = 'Hello world!'
32
- m.text = 'I heard you like the beach.'
33
- m.html = 'I heard you like the beach <div><img src="cid:beach"></div>'
34
- end
35
- mail.add_content('/tmp/beach.jpg', 'beach')
36
- mail.add_attachment('/tmp/report.pdf', 'report.pdf')
37
- result = client.send(mail)
38
- puts result.code
39
- puts result.body
40
-
41
- # puts client.send(SendGrid::Mail.new(to: 'elmer.thomas@sendgrid.com', from: 'elmer@thinkingserious.com', subject: 'Hello world!', text: 'Hi there, testing from Ruby!', html: '<b>Hi there, testing from Ruby!</b>'))
@@ -1,62 +0,0 @@
1
- require 'faraday'
2
-
3
- module SendGrid
4
- class Client
5
- attr_accessor :api_user, :api_key, :protocol, :host, :port, :url, :endpoint,
6
- :user_agent, :template
7
- attr_writer :adapter, :conn, :raise_exceptions
8
-
9
- def initialize(params = {})
10
- self.api_user = params.fetch(:api_user, nil)
11
- self.api_key = params.fetch(:api_key, nil)
12
- self.protocol = params.fetch(:protocol, 'https')
13
- self.host = params.fetch(:host, 'api.sendgrid.com')
14
- self.port = params.fetch(:port, nil)
15
- self.url = params.fetch(:url, protocol + '://' + host + (port ? ":#{port}" : ''))
16
- self.endpoint = params.fetch(:endpoint, '/api/mail.send.json')
17
- self.adapter = params.fetch(:adapter, adapter)
18
- self.conn = params.fetch(:conn, conn)
19
- self.user_agent = params.fetch(:user_agent, "sendgrid/#{SendGrid::VERSION};ruby")
20
- self.raise_exceptions = params.fetch(:raise_exceptions, true)
21
- yield self if block_given?
22
- end
23
-
24
- def send(mail)
25
- res = conn.post do |req|
26
- payload = mail.to_h
27
- req.url(endpoint)
28
-
29
- # Check if using username + password or API key
30
- if api_user
31
- # Username + password
32
- payload = payload.merge(api_user: api_user, api_key: api_key)
33
- else
34
- # API key
35
- req.headers['Authorization'] = "Bearer #{api_key}"
36
- end
37
-
38
- req.body = payload
39
- end
40
-
41
- fail SendGrid::Exception, res.body if raise_exceptions? && res.status != 200
42
-
43
- SendGrid::Response.new(code: res.status, headers: res.headers, body: res.body)
44
- end
45
-
46
- def conn
47
- @conn ||= Faraday.new(url: url) do |conn|
48
- conn.request :multipart
49
- conn.request :url_encoded
50
- conn.adapter adapter
51
- end
52
- end
53
-
54
- def adapter
55
- @adapter ||= Faraday.default_adapter
56
- end
57
-
58
- def raise_exceptions?
59
- @raise_exceptions
60
- end
61
- end
62
- end
@@ -1,7 +0,0 @@
1
- module SendGrid
2
- class Exception < StandardError
3
- def initialize(message)
4
- super(message)
5
- end
6
- end
7
- end