sendgrid-ruby 1.1.6 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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