sendgrid-ruby 5.3.0 → 6.7.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.
- checksums.yaml +5 -5
- data/.github/workflows/pr-lint.yml +15 -0
- data/.github/workflows/test-and-deploy.yml +120 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +8 -0
- data/.rubocop_todo.yml +127 -0
- data/CHANGELOG.md +261 -8
- data/CODE_OF_CONDUCT.md +57 -25
- data/CONTRIBUTING.md +24 -71
- data/Dockerfile +14 -0
- data/FIRST_TIMERS.md +53 -0
- data/Gemfile +0 -1
- data/LICENSE +21 -0
- data/Makefile +14 -0
- data/PULL_REQUEST_TEMPLATE.md +31 -0
- data/README.md +39 -43
- data/Rakefile +3 -4
- data/TROUBLESHOOTING.md +41 -21
- data/UPGRADE.md +5 -0
- data/USAGE.md +1231 -1122
- data/examples/accesssettings/accesssettings.rb +9 -12
- data/examples/alerts/alerts.rb +8 -11
- data/examples/apikeys/apikeys.rb +12 -15
- data/examples/asm/asm.rb +27 -30
- data/examples/browsers/browsers.rb +0 -3
- data/examples/campaigns/campaigns.rb +29 -32
- data/examples/categories/categories.rb +0 -3
- data/examples/clients/clients.rb +1 -4
- data/examples/contactdb/contactdb.rb +63 -66
- data/examples/dataresidency/setregion.rb +48 -0
- data/examples/devices/devices.rb +0 -3
- data/examples/emailactivity/emailactivity.rb +52 -0
- data/examples/geo/geo.rb +0 -3
- data/examples/helpers/eventwebhook/example.rb +16 -0
- data/examples/helpers/mail/example.rb +30 -19
- data/examples/helpers/settings/example.rb +1 -1
- data/examples/helpers/stats/example.rb +4 -4
- data/examples/ips/ips.rb +31 -21
- data/examples/mail/mail.rb +73 -76
- data/examples/mailboxproviders/mailboxproviders.rb +0 -3
- data/examples/mailsettings/mailsettings.rb +21 -24
- data/examples/partnersettings/partnersettings.rb +3 -6
- data/examples/scopes/scopes.rb +49 -5
- data/examples/{whitelabel/whitelabel.rb → senderauthentication/senderauthentication.rb} +68 -71
- data/examples/senders/senders.rb +28 -31
- data/examples/stats/stats.rb +0 -3
- data/examples/subusers/subusers.rb +17 -20
- data/examples/suppression/suppression.rb +23 -26
- data/examples/templates/templates.rb +29 -31
- data/examples/trackingsettings/trackingsettings.rb +14 -17
- data/examples/user/user.rb +41 -44
- data/lib/rack/sendgrid_webhook_verification.rb +55 -0
- data/lib/sendgrid/base_interface.rb +57 -0
- data/lib/sendgrid/helpers/eventwebhook/eventwebhook.rb +50 -0
- data/lib/sendgrid/helpers/inbound/README.md +26 -9
- data/lib/sendgrid/helpers/inbound/app.rb +15 -3
- data/lib/sendgrid/helpers/inbound/public/index.html +2 -2
- data/lib/sendgrid/helpers/inbound/sample_data/default_data.txt +2 -2
- data/lib/sendgrid/helpers/inbound/sample_data/raw_data.txt +2 -2
- data/lib/sendgrid/helpers/inbound/sample_data/raw_data_with_attachments.txt +2 -2
- data/lib/sendgrid/helpers/inbound/send.rb +5 -5
- data/lib/sendgrid/helpers/ip_management/ip_management.rb +17 -0
- data/lib/sendgrid/helpers/mail/README.md +4 -4
- data/lib/sendgrid/helpers/mail/asm.rb +4 -18
- data/lib/sendgrid/helpers/mail/attachment.rb +30 -38
- data/lib/sendgrid/helpers/mail/bcc_settings.rb +4 -18
- data/lib/sendgrid/helpers/mail/bypass_list_management.rb +6 -18
- data/lib/sendgrid/helpers/mail/category.rb +2 -12
- data/lib/sendgrid/helpers/mail/click_tracking.rb +4 -18
- data/lib/sendgrid/helpers/mail/content.rb +4 -18
- data/lib/sendgrid/helpers/mail/custom_arg.rb +4 -10
- data/lib/sendgrid/helpers/mail/email.rb +10 -20
- data/lib/sendgrid/helpers/mail/footer.rb +5 -27
- data/lib/sendgrid/helpers/mail/ganalytics.rb +9 -55
- data/lib/sendgrid/helpers/mail/header.rb +4 -10
- data/lib/sendgrid/helpers/mail/mail.rb +37 -87
- data/lib/sendgrid/helpers/mail/mail_settings.rb +7 -25
- data/lib/sendgrid/helpers/mail/open_tracking.rb +4 -18
- data/lib/sendgrid/helpers/mail/personalization.rb +38 -27
- data/lib/sendgrid/helpers/mail/section.rb +4 -10
- data/lib/sendgrid/helpers/mail/spam_check.rb +5 -27
- data/lib/sendgrid/helpers/mail/subscription_tracking.rb +6 -36
- data/lib/sendgrid/helpers/mail/substitution.rb +4 -10
- data/lib/sendgrid/helpers/mail/tracking_settings.rb +6 -20
- data/lib/sendgrid/helpers/permissions/scope.rb +28 -0
- data/lib/sendgrid/helpers/permissions/scopes.yml +309 -0
- data/lib/sendgrid/helpers/settings/README.md +3 -3
- data/lib/sendgrid/helpers/settings/settings.rb +1 -1
- data/lib/sendgrid/helpers/settings/tracking_settings_dto.rb +3 -5
- data/lib/sendgrid/helpers/stats/metrics.rb +5 -7
- data/lib/sendgrid/helpers/stats/stats_response.rb +1 -3
- data/lib/sendgrid/sendgrid.rb +21 -0
- data/lib/sendgrid/twilio_email.rb +21 -0
- data/lib/sendgrid/version.rb +1 -1
- data/lib/sendgrid-ruby.rb +7 -1
- data/mail_helper_v3.md +21 -21
- data/sendgrid-ruby.gemspec +12 -12
- data/spec/fixtures/event_webhook.rb +22 -0
- data/spec/rack/sendgrid_webhook_verification_spec.rb +142 -0
- data/spec/sendgrid/helpers/eventwebhook/eventwebhook_spec.rb +105 -0
- data/spec/sendgrid/helpers/ip_management/ip_management_spec.rb +12 -0
- data/spec/sendgrid/helpers/settings/mail_settings_dto_spec.rb +3 -3
- data/spec/sendgrid/helpers/settings/partner_settings_dto_spec.rb +3 -3
- data/spec/sendgrid/helpers/settings/settings_spec.rb +2 -2
- data/spec/sendgrid/helpers/settings/tracking_settings_dto_spec.rb +3 -3
- data/spec/sendgrid/helpers/settings/user_settings_dto_spec.rb +3 -3
- data/spec/sendgrid/helpers/stats/email_stats_spec.rb +22 -23
- data/spec/sendgrid/helpers/stats/metrics_spec.rb +19 -20
- data/spec/sendgrid/helpers/stats/stats_response_spec.rb +22 -23
- data/spec/sendgrid/sendgrid_spec.rb +11 -0
- data/spec/sendgrid/twilio_email_spec.rb +11 -0
- data/spec/spec_helper.rb +3 -1
- data/static/img/github-fork.png +0 -0
- data/static/img/github-sign-up.png +0 -0
- data/test/sendgrid/helpers/mail/test_attachment.rb +33 -0
- data/test/sendgrid/helpers/mail/test_category.rb +0 -2
- data/test/sendgrid/helpers/mail/test_data_residency.rb +44 -0
- data/test/sendgrid/helpers/mail/test_email.rb +17 -10
- data/test/sendgrid/helpers/mail/test_mail.rb +126 -119
- data/test/sendgrid/helpers/mail/test_personalizations.rb +145 -92
- data/test/sendgrid/permissions/test_scopes.rb +36 -0
- data/test/sendgrid/test_sendgrid-ruby.rb +1961 -1979
- data/twilio_sendgrid_logo.png +0 -0
- data/use-cases/README.md +17 -0
- data/use-cases/domain-authentication.md +5 -0
- data/use-cases/email-statistics.md +52 -0
- data/use-cases/legacy-templates.md +98 -0
- data/use-cases/personalizations.md +34 -0
- data/use-cases/sms.md +39 -0
- data/use-cases/transactional-templates.md +111 -0
- data/use-cases/twilio-email.md +13 -0
- data/use-cases/twilio-setup.md +54 -0
- metadata +99 -45
- data/.codeclimate.yml +0 -21
- data/.github/ISSUE_TEMPLATE +0 -17
- data/.github/PULL_REQUEST_TEMPLATE +0 -24
- data/.travis.yml +0 -29
- data/LICENSE.txt +0 -22
- data/USE_CASES.md +0 -147
- data/docker/Dockerfile +0 -12
- data/docker/README.md +0 -30
- data/lib/sendgrid/client.rb +0 -35
- data/test/prism.sh +0 -42
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sendgrid-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 6.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Elmer Thomas
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2023-12-01 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: ruby_http_client
|
|
@@ -18,50 +18,44 @@ dependencies:
|
|
|
18
18
|
requirements:
|
|
19
19
|
- - "~>"
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 3.
|
|
21
|
+
version: '3.4'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
requirements:
|
|
26
26
|
- - "~>"
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: 3.
|
|
28
|
+
version: '3.4'
|
|
29
29
|
- !ruby/object:Gem::Dependency
|
|
30
|
-
name:
|
|
30
|
+
name: faker
|
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
|
32
32
|
requirements:
|
|
33
33
|
- - ">="
|
|
34
34
|
- !ruby/object:Gem::Version
|
|
35
|
-
version:
|
|
36
|
-
|
|
37
|
-
- !ruby/object:Gem::Version
|
|
38
|
-
version: '3'
|
|
39
|
-
type: :runtime
|
|
35
|
+
version: '0'
|
|
36
|
+
type: :development
|
|
40
37
|
prerelease: false
|
|
41
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
42
39
|
requirements:
|
|
43
40
|
- - ">="
|
|
44
41
|
- !ruby/object:Gem::Version
|
|
45
|
-
version:
|
|
46
|
-
- - "<"
|
|
47
|
-
- !ruby/object:Gem::Version
|
|
48
|
-
version: '3'
|
|
42
|
+
version: '0'
|
|
49
43
|
- !ruby/object:Gem::Dependency
|
|
50
|
-
name:
|
|
44
|
+
name: minitest
|
|
51
45
|
requirement: !ruby/object:Gem::Requirement
|
|
52
46
|
requirements:
|
|
53
47
|
- - "~>"
|
|
54
48
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: '
|
|
49
|
+
version: '5.9'
|
|
56
50
|
type: :development
|
|
57
51
|
prerelease: false
|
|
58
52
|
version_requirements: !ruby/object:Gem::Requirement
|
|
59
53
|
requirements:
|
|
60
54
|
- - "~>"
|
|
61
55
|
- !ruby/object:Gem::Version
|
|
62
|
-
version: '
|
|
56
|
+
version: '5.9'
|
|
63
57
|
- !ruby/object:Gem::Dependency
|
|
64
|
-
name:
|
|
58
|
+
name: pry
|
|
65
59
|
requirement: !ruby/object:Gem::Requirement
|
|
66
60
|
requirements:
|
|
67
61
|
- - ">="
|
|
@@ -75,7 +69,7 @@ dependencies:
|
|
|
75
69
|
- !ruby/object:Gem::Version
|
|
76
70
|
version: '0'
|
|
77
71
|
- !ruby/object:Gem::Dependency
|
|
78
|
-
name:
|
|
72
|
+
name: rack
|
|
79
73
|
requirement: !ruby/object:Gem::Requirement
|
|
80
74
|
requirements:
|
|
81
75
|
- - ">="
|
|
@@ -89,21 +83,21 @@ dependencies:
|
|
|
89
83
|
- !ruby/object:Gem::Version
|
|
90
84
|
version: '0'
|
|
91
85
|
- !ruby/object:Gem::Dependency
|
|
92
|
-
name:
|
|
86
|
+
name: rake
|
|
93
87
|
requirement: !ruby/object:Gem::Requirement
|
|
94
88
|
requirements:
|
|
95
|
-
- - "
|
|
89
|
+
- - "~>"
|
|
96
90
|
- !ruby/object:Gem::Version
|
|
97
|
-
version: '0'
|
|
91
|
+
version: '13.0'
|
|
98
92
|
type: :development
|
|
99
93
|
prerelease: false
|
|
100
94
|
version_requirements: !ruby/object:Gem::Requirement
|
|
101
95
|
requirements:
|
|
102
|
-
- - "
|
|
96
|
+
- - "~>"
|
|
103
97
|
- !ruby/object:Gem::Version
|
|
104
|
-
version: '0'
|
|
98
|
+
version: '13.0'
|
|
105
99
|
- !ruby/object:Gem::Dependency
|
|
106
|
-
name:
|
|
100
|
+
name: rspec
|
|
107
101
|
requirement: !ruby/object:Gem::Requirement
|
|
108
102
|
requirements:
|
|
109
103
|
- - ">="
|
|
@@ -117,44 +111,67 @@ dependencies:
|
|
|
117
111
|
- !ruby/object:Gem::Version
|
|
118
112
|
version: '0'
|
|
119
113
|
- !ruby/object:Gem::Dependency
|
|
120
|
-
name:
|
|
114
|
+
name: simplecov
|
|
121
115
|
requirement: !ruby/object:Gem::Requirement
|
|
122
116
|
requirements:
|
|
123
117
|
- - "~>"
|
|
124
118
|
- !ruby/object:Gem::Version
|
|
125
|
-
version:
|
|
119
|
+
version: 0.18.5
|
|
126
120
|
type: :development
|
|
127
121
|
prerelease: false
|
|
128
122
|
version_requirements: !ruby/object:Gem::Requirement
|
|
129
123
|
requirements:
|
|
130
124
|
- - "~>"
|
|
131
125
|
- !ruby/object:Gem::Version
|
|
132
|
-
version:
|
|
133
|
-
|
|
134
|
-
|
|
126
|
+
version: 0.18.5
|
|
127
|
+
- !ruby/object:Gem::Dependency
|
|
128
|
+
name: sinatra
|
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
|
130
|
+
requirements:
|
|
131
|
+
- - ">="
|
|
132
|
+
- !ruby/object:Gem::Version
|
|
133
|
+
version: 1.4.7
|
|
134
|
+
- - "<"
|
|
135
|
+
- !ruby/object:Gem::Version
|
|
136
|
+
version: '3'
|
|
137
|
+
type: :development
|
|
138
|
+
prerelease: false
|
|
139
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
140
|
+
requirements:
|
|
141
|
+
- - ">="
|
|
142
|
+
- !ruby/object:Gem::Version
|
|
143
|
+
version: 1.4.7
|
|
144
|
+
- - "<"
|
|
145
|
+
- !ruby/object:Gem::Version
|
|
146
|
+
version: '3'
|
|
147
|
+
description: Official Twilio SendGrid Gem to Interact with Twilio SendGrids API in
|
|
148
|
+
native Ruby
|
|
149
|
+
email: help@twilio.com
|
|
135
150
|
executables: []
|
|
136
151
|
extensions: []
|
|
137
152
|
extra_rdoc_files: []
|
|
138
153
|
files:
|
|
139
|
-
- ".codeclimate.yml"
|
|
140
154
|
- ".env_sample"
|
|
141
|
-
- ".github/
|
|
142
|
-
- ".github/
|
|
155
|
+
- ".github/workflows/pr-lint.yml"
|
|
156
|
+
- ".github/workflows/test-and-deploy.yml"
|
|
143
157
|
- ".gitignore"
|
|
144
|
-
- ".
|
|
158
|
+
- ".rubocop.yml"
|
|
159
|
+
- ".rubocop_todo.yml"
|
|
145
160
|
- CHANGELOG.md
|
|
146
161
|
- CODE_OF_CONDUCT.md
|
|
147
162
|
- CONTRIBUTING.md
|
|
163
|
+
- Dockerfile
|
|
164
|
+
- FIRST_TIMERS.md
|
|
148
165
|
- Gemfile
|
|
149
|
-
- LICENSE
|
|
166
|
+
- LICENSE
|
|
167
|
+
- Makefile
|
|
168
|
+
- PULL_REQUEST_TEMPLATE.md
|
|
150
169
|
- README.md
|
|
151
170
|
- Rakefile
|
|
152
171
|
- TROUBLESHOOTING.md
|
|
172
|
+
- UPGRADE.md
|
|
153
173
|
- USAGE.md
|
|
154
|
-
- USE_CASES.md
|
|
155
174
|
- config.ru
|
|
156
|
-
- docker/Dockerfile
|
|
157
|
-
- docker/README.md
|
|
158
175
|
- examples/accesssettings/accesssettings.rb
|
|
159
176
|
- examples/alerts/alerts.rb
|
|
160
177
|
- examples/apikeys/apikeys.rb
|
|
@@ -164,8 +181,11 @@ files:
|
|
|
164
181
|
- examples/categories/categories.rb
|
|
165
182
|
- examples/clients/clients.rb
|
|
166
183
|
- examples/contactdb/contactdb.rb
|
|
184
|
+
- examples/dataresidency/setregion.rb
|
|
167
185
|
- examples/devices/devices.rb
|
|
186
|
+
- examples/emailactivity/emailactivity.rb
|
|
168
187
|
- examples/geo/geo.rb
|
|
188
|
+
- examples/helpers/eventwebhook/example.rb
|
|
169
189
|
- examples/helpers/mail/example.rb
|
|
170
190
|
- examples/helpers/settings/example.rb
|
|
171
191
|
- examples/helpers/stats/example.rb
|
|
@@ -175,6 +195,7 @@ files:
|
|
|
175
195
|
- examples/mailsettings/mailsettings.rb
|
|
176
196
|
- examples/partnersettings/partnersettings.rb
|
|
177
197
|
- examples/scopes/scopes.rb
|
|
198
|
+
- examples/senderauthentication/senderauthentication.rb
|
|
178
199
|
- examples/senders/senders.rb
|
|
179
200
|
- examples/stats/stats.rb
|
|
180
201
|
- examples/subusers/subusers.rb
|
|
@@ -182,11 +203,12 @@ files:
|
|
|
182
203
|
- examples/templates/templates.rb
|
|
183
204
|
- examples/trackingsettings/trackingsettings.rb
|
|
184
205
|
- examples/user/user.rb
|
|
185
|
-
- examples/whitelabel/whitelabel.rb
|
|
186
206
|
- gemfiles/Sinatra_1.gemfile
|
|
187
207
|
- gemfiles/Sinatra_2.gemfile
|
|
208
|
+
- lib/rack/sendgrid_webhook_verification.rb
|
|
188
209
|
- lib/sendgrid-ruby.rb
|
|
189
|
-
- lib/sendgrid/
|
|
210
|
+
- lib/sendgrid/base_interface.rb
|
|
211
|
+
- lib/sendgrid/helpers/eventwebhook/eventwebhook.rb
|
|
190
212
|
- lib/sendgrid/helpers/inbound/README.md
|
|
191
213
|
- lib/sendgrid/helpers/inbound/app.rb
|
|
192
214
|
- lib/sendgrid/helpers/inbound/config.yml
|
|
@@ -195,6 +217,7 @@ files:
|
|
|
195
217
|
- lib/sendgrid/helpers/inbound/sample_data/raw_data.txt
|
|
196
218
|
- lib/sendgrid/helpers/inbound/sample_data/raw_data_with_attachments.txt
|
|
197
219
|
- lib/sendgrid/helpers/inbound/send.rb
|
|
220
|
+
- lib/sendgrid/helpers/ip_management/ip_management.rb
|
|
198
221
|
- lib/sendgrid/helpers/mail/README.md
|
|
199
222
|
- lib/sendgrid/helpers/mail/asm.rb
|
|
200
223
|
- lib/sendgrid/helpers/mail/attachment.rb
|
|
@@ -217,6 +240,8 @@ files:
|
|
|
217
240
|
- lib/sendgrid/helpers/mail/subscription_tracking.rb
|
|
218
241
|
- lib/sendgrid/helpers/mail/substitution.rb
|
|
219
242
|
- lib/sendgrid/helpers/mail/tracking_settings.rb
|
|
243
|
+
- lib/sendgrid/helpers/permissions/scope.rb
|
|
244
|
+
- lib/sendgrid/helpers/permissions/scopes.yml
|
|
220
245
|
- lib/sendgrid/helpers/settings/README.md
|
|
221
246
|
- lib/sendgrid/helpers/settings/mail_settings_dto.rb
|
|
222
247
|
- lib/sendgrid/helpers/settings/partner_settings_dto.rb
|
|
@@ -226,9 +251,15 @@ files:
|
|
|
226
251
|
- lib/sendgrid/helpers/stats/email_stats.rb
|
|
227
252
|
- lib/sendgrid/helpers/stats/metrics.rb
|
|
228
253
|
- lib/sendgrid/helpers/stats/stats_response.rb
|
|
254
|
+
- lib/sendgrid/sendgrid.rb
|
|
255
|
+
- lib/sendgrid/twilio_email.rb
|
|
229
256
|
- lib/sendgrid/version.rb
|
|
230
257
|
- mail_helper_v3.md
|
|
231
258
|
- sendgrid-ruby.gemspec
|
|
259
|
+
- spec/fixtures/event_webhook.rb
|
|
260
|
+
- spec/rack/sendgrid_webhook_verification_spec.rb
|
|
261
|
+
- spec/sendgrid/helpers/eventwebhook/eventwebhook_spec.rb
|
|
262
|
+
- spec/sendgrid/helpers/ip_management/ip_management_spec.rb
|
|
232
263
|
- spec/sendgrid/helpers/settings/mail_settings_dto_spec.rb
|
|
233
264
|
- spec/sendgrid/helpers/settings/partner_settings_dto_spec.rb
|
|
234
265
|
- spec/sendgrid/helpers/settings/settings_spec.rb
|
|
@@ -237,13 +268,29 @@ files:
|
|
|
237
268
|
- spec/sendgrid/helpers/stats/email_stats_spec.rb
|
|
238
269
|
- spec/sendgrid/helpers/stats/metrics_spec.rb
|
|
239
270
|
- spec/sendgrid/helpers/stats/stats_response_spec.rb
|
|
271
|
+
- spec/sendgrid/sendgrid_spec.rb
|
|
272
|
+
- spec/sendgrid/twilio_email_spec.rb
|
|
240
273
|
- spec/spec_helper.rb
|
|
241
|
-
-
|
|
274
|
+
- static/img/github-fork.png
|
|
275
|
+
- static/img/github-sign-up.png
|
|
276
|
+
- test/sendgrid/helpers/mail/test_attachment.rb
|
|
242
277
|
- test/sendgrid/helpers/mail/test_category.rb
|
|
278
|
+
- test/sendgrid/helpers/mail/test_data_residency.rb
|
|
243
279
|
- test/sendgrid/helpers/mail/test_email.rb
|
|
244
280
|
- test/sendgrid/helpers/mail/test_mail.rb
|
|
245
281
|
- test/sendgrid/helpers/mail/test_personalizations.rb
|
|
282
|
+
- test/sendgrid/permissions/test_scopes.rb
|
|
246
283
|
- test/sendgrid/test_sendgrid-ruby.rb
|
|
284
|
+
- twilio_sendgrid_logo.png
|
|
285
|
+
- use-cases/README.md
|
|
286
|
+
- use-cases/domain-authentication.md
|
|
287
|
+
- use-cases/email-statistics.md
|
|
288
|
+
- use-cases/legacy-templates.md
|
|
289
|
+
- use-cases/personalizations.md
|
|
290
|
+
- use-cases/sms.md
|
|
291
|
+
- use-cases/transactional-templates.md
|
|
292
|
+
- use-cases/twilio-email.md
|
|
293
|
+
- use-cases/twilio-setup.md
|
|
247
294
|
homepage: http://github.com/sendgrid/sendgrid-ruby
|
|
248
295
|
licenses:
|
|
249
296
|
- MIT
|
|
@@ -263,12 +310,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
263
310
|
- !ruby/object:Gem::Version
|
|
264
311
|
version: '0'
|
|
265
312
|
requirements: []
|
|
266
|
-
|
|
267
|
-
rubygems_version: 2.6.10
|
|
313
|
+
rubygems_version: 3.3.26
|
|
268
314
|
signing_key:
|
|
269
315
|
specification_version: 4
|
|
270
|
-
summary: Official SendGrid Gem
|
|
316
|
+
summary: Official Twilio SendGrid Gem
|
|
271
317
|
test_files:
|
|
318
|
+
- spec/fixtures/event_webhook.rb
|
|
319
|
+
- spec/rack/sendgrid_webhook_verification_spec.rb
|
|
320
|
+
- spec/sendgrid/helpers/eventwebhook/eventwebhook_spec.rb
|
|
321
|
+
- spec/sendgrid/helpers/ip_management/ip_management_spec.rb
|
|
272
322
|
- spec/sendgrid/helpers/settings/mail_settings_dto_spec.rb
|
|
273
323
|
- spec/sendgrid/helpers/settings/partner_settings_dto_spec.rb
|
|
274
324
|
- spec/sendgrid/helpers/settings/settings_spec.rb
|
|
@@ -277,10 +327,14 @@ test_files:
|
|
|
277
327
|
- spec/sendgrid/helpers/stats/email_stats_spec.rb
|
|
278
328
|
- spec/sendgrid/helpers/stats/metrics_spec.rb
|
|
279
329
|
- spec/sendgrid/helpers/stats/stats_response_spec.rb
|
|
330
|
+
- spec/sendgrid/sendgrid_spec.rb
|
|
331
|
+
- spec/sendgrid/twilio_email_spec.rb
|
|
280
332
|
- spec/spec_helper.rb
|
|
281
|
-
- test/
|
|
333
|
+
- test/sendgrid/helpers/mail/test_attachment.rb
|
|
282
334
|
- test/sendgrid/helpers/mail/test_category.rb
|
|
335
|
+
- test/sendgrid/helpers/mail/test_data_residency.rb
|
|
283
336
|
- test/sendgrid/helpers/mail/test_email.rb
|
|
284
337
|
- test/sendgrid/helpers/mail/test_mail.rb
|
|
285
338
|
- test/sendgrid/helpers/mail/test_personalizations.rb
|
|
339
|
+
- test/sendgrid/permissions/test_scopes.rb
|
|
286
340
|
- test/sendgrid/test_sendgrid-ruby.rb
|
data/.codeclimate.yml
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
engines:
|
|
3
|
-
duplication:
|
|
4
|
-
enabled: true
|
|
5
|
-
config:
|
|
6
|
-
languages:
|
|
7
|
-
- ruby
|
|
8
|
-
fixme:
|
|
9
|
-
enabled: true
|
|
10
|
-
rubocop:
|
|
11
|
-
enabled: true
|
|
12
|
-
bundler-audit:
|
|
13
|
-
enabled: true
|
|
14
|
-
ratings:
|
|
15
|
-
paths:
|
|
16
|
-
- "**.rb"
|
|
17
|
-
exclude_paths:
|
|
18
|
-
- examples/
|
|
19
|
-
- spec/
|
|
20
|
-
- test/
|
|
21
|
-
- gemfiles/
|
data/.github/ISSUE_TEMPLATE
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#### Issue Summary
|
|
2
|
-
|
|
3
|
-
A summary of the issue and the environment in which it occurs. If suitable, include the steps required to reproduce the bug. Please feel free to include screenshots, screencasts, code examples.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
#### Steps to Reproduce
|
|
7
|
-
|
|
8
|
-
1. This is the first step
|
|
9
|
-
2. This is the second step
|
|
10
|
-
3. Further steps, etc.
|
|
11
|
-
|
|
12
|
-
Any other information you want to share that is relevant to the issue being reported. Especially, why do you consider this to be a bug? What do you expect to happen instead?
|
|
13
|
-
|
|
14
|
-
#### Technical details:
|
|
15
|
-
|
|
16
|
-
* sendgrid-ruby Version: master (latest commit: [commit number])
|
|
17
|
-
* Ruby Version: 2.2
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
We appreciate the effort for this pull request but before that please make sure you read the contribution guidelines given above, then fill out the blanks below.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Please enter each Issue number you are resolving in your PR after one of the following words [Fixes, Closes, Resolves]. This will auto-link these issues and close them when this PR is merged!
|
|
6
|
-
e.g.
|
|
7
|
-
Fixes #1
|
|
8
|
-
Closes #2
|
|
9
|
-
-->
|
|
10
|
-
# Fixes #
|
|
11
|
-
|
|
12
|
-
### Checklist
|
|
13
|
-
- [ ] I have made a material change to the repo (functionality, testing, spelling, grammar)
|
|
14
|
-
- [ ] I have read the [Contribution Guide] and my PR follows them.
|
|
15
|
-
- [ ] I updated my branch with the master branch.
|
|
16
|
-
- [ ] I have added tests that prove my fix is effective or that my feature works
|
|
17
|
-
- [ ] I have added necessary documentation about the functionality in the appropriate .md file
|
|
18
|
-
- [ ] I have added in line documentation to the code I modified
|
|
19
|
-
|
|
20
|
-
### Short description of what this PR does:
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
If you have questions, please send an email to [Sendgrid](mailto:dx@sendgrid.com), or file a Github Issue in this repository.
|
data/.travis.yml
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
rvm:
|
|
3
|
-
- 2.2.6
|
|
4
|
-
- 2.3.4
|
|
5
|
-
- 2.4.1
|
|
6
|
-
gemfile:
|
|
7
|
-
- gemfiles/Sinatra_1.gemfile
|
|
8
|
-
- gemfiles/Sinatra_2.gemfile
|
|
9
|
-
before_script:
|
|
10
|
-
- mkdir prism
|
|
11
|
-
- mkdir prism/bin
|
|
12
|
-
- export PATH=$PATH:$PWD/prism/bin/
|
|
13
|
-
- ./test/prism.sh
|
|
14
|
-
notifications:
|
|
15
|
-
hipchat:
|
|
16
|
-
rooms:
|
|
17
|
-
secure: gYBEwOGBTxHE2nrxsHQqp2UdjRtCX04wVLYEimeT9RG/0LClS4nzJF7DaXLWlAwgLPmk+KV2+nXuLO5oausBr9ODmWhho8G0F90RPR47NupcvT1RM+I2ZbxSjHCUICL22mdnZd8ye/mrk/YtFWYmgmH7ILRK3BuYovXFoKoRnLg=
|
|
18
|
-
template:
|
|
19
|
-
- '<a href="https://travis-ci.org/%{repository}/builds/%{build_id}">%{repository}
|
|
20
|
-
Build %{build_number}</a> on branch <i>%{branch}</i> by %{author}: <strong>%{message}</strong>
|
|
21
|
-
<a href="https://github.com/sendgrid/%{repository}/commits/%{commit}">View on GitHub</a>'
|
|
22
|
-
format: html
|
|
23
|
-
notify: false
|
|
24
|
-
script:
|
|
25
|
-
- rake test
|
|
26
|
-
- rake spec
|
|
27
|
-
before_install:
|
|
28
|
-
- gem update bundler
|
|
29
|
-
|
data/LICENSE.txt
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2014-2018 SendGrid, Inc.
|
|
2
|
-
|
|
3
|
-
MIT License
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
-
a copy of this software and associated documentation files (the
|
|
7
|
-
"Software"), to deal in the Software without restriction, including
|
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
-
the following conditions:
|
|
12
|
-
|
|
13
|
-
The above copyright notice and this permission notice shall be
|
|
14
|
-
included in all copies or substantial portions of the Software.
|
|
15
|
-
|
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/USE_CASES.md
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
This documentation provides examples for specific use cases. Please [open an issue](https://github.com/sendgrid/sendgrid-ruby/issues) or make a pull request for any use cases you would like us to document here. Thank you!
|
|
2
|
-
|
|
3
|
-
# Table of Contents
|
|
4
|
-
|
|
5
|
-
* [Transactional Templates](#transactional-templates)
|
|
6
|
-
* [How to Setup a Domain Whitelabel](#domain-whitelabel)
|
|
7
|
-
* [How to View Email Statistics](#email-statistics)
|
|
8
|
-
|
|
9
|
-
<a name="transactional-templates"></a>
|
|
10
|
-
# (LEGACY) Transactional Templates
|
|
11
|
-
|
|
12
|
-
IF YOU ARE USING OUR NEW TEMPLATES, PLEASE SEE [THIS ISSUE](https://github.com/sendgrid/sendgrid-ruby/issues/301).
|
|
13
|
-
|
|
14
|
-
For this example, we assume you have created a [transactional template](https://sendgrid.com/docs/User_Guide/Transactional_Templates/index.html). Following is the template content we used for testing.
|
|
15
|
-
|
|
16
|
-
Template ID (replace with your own):
|
|
17
|
-
|
|
18
|
-
```text
|
|
19
|
-
13b8f94f-bcae-4ec6-b752-70d6cb59f932
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Email Subject:
|
|
23
|
-
|
|
24
|
-
```text
|
|
25
|
-
<%subject%>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Template Body:
|
|
29
|
-
|
|
30
|
-
```html
|
|
31
|
-
<html>
|
|
32
|
-
<head>
|
|
33
|
-
<title></title>
|
|
34
|
-
</head>
|
|
35
|
-
<body>
|
|
36
|
-
Hello -name-,
|
|
37
|
-
<br /><br/>
|
|
38
|
-
I'm glad you are trying out the template feature!
|
|
39
|
-
<br /><br/>
|
|
40
|
-
<%body%>
|
|
41
|
-
<br /><br/>
|
|
42
|
-
I hope you are having a great day in -city- :)
|
|
43
|
-
<br /><br/>
|
|
44
|
-
</body>
|
|
45
|
-
</html>
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## With Mail Helper Class
|
|
49
|
-
|
|
50
|
-
```ruby
|
|
51
|
-
require 'sendgrid-ruby'
|
|
52
|
-
include SendGrid
|
|
53
|
-
|
|
54
|
-
mail = Mail.new
|
|
55
|
-
mail.from = Email.new(email: 'test@example.com')
|
|
56
|
-
mail.subject = 'I\'m replacing the subject tag'
|
|
57
|
-
personalization = Personalization.new
|
|
58
|
-
personalization.add_to(Email.new(email: 'test@example.com'))
|
|
59
|
-
personalization.add_substitution(Substitution.new(key: '-name-', value: 'Example User'))
|
|
60
|
-
personalization.add_substitution(Substitution.new(key: '-city-', value: 'Denver'))
|
|
61
|
-
mail.add_personalization(personalization)
|
|
62
|
-
mail.add_content(Content.new(type: 'text/html', value: 'I\'m replacing the <strong>body tag</strong>'))
|
|
63
|
-
mail.template_id = '13b8f94f-bcae-4ec6-b752-70d6cb59f932'
|
|
64
|
-
|
|
65
|
-
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
|
|
66
|
-
begin
|
|
67
|
-
response = sg.client.mail._("send").post(request_body: mail.to_json)
|
|
68
|
-
rescue Exception => e
|
|
69
|
-
puts e.message
|
|
70
|
-
end
|
|
71
|
-
puts response.status_code
|
|
72
|
-
puts response.body
|
|
73
|
-
puts response.parsed_body
|
|
74
|
-
puts response.headers
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Without Mail Helper Class
|
|
78
|
-
|
|
79
|
-
```ruby
|
|
80
|
-
require 'sendgrid-ruby'
|
|
81
|
-
include SendGrid
|
|
82
|
-
|
|
83
|
-
data = JSON.parse('{
|
|
84
|
-
"personalizations": [
|
|
85
|
-
{
|
|
86
|
-
"to": [
|
|
87
|
-
{
|
|
88
|
-
"email": "test@example.com"
|
|
89
|
-
}
|
|
90
|
-
],
|
|
91
|
-
"substitutions": {
|
|
92
|
-
"-name-": "Example User",
|
|
93
|
-
"-city-": "Denver"
|
|
94
|
-
},
|
|
95
|
-
"subject": "I\'m replacing the subject tag"
|
|
96
|
-
}
|
|
97
|
-
],
|
|
98
|
-
"from": {
|
|
99
|
-
"email": "test@example.com"
|
|
100
|
-
},
|
|
101
|
-
"content": [
|
|
102
|
-
{
|
|
103
|
-
"type": "text/html",
|
|
104
|
-
"value": "I\'m replacing the <strong>body tag</strong>"
|
|
105
|
-
}
|
|
106
|
-
],
|
|
107
|
-
"template_id": "13b8f94f-bcae-4ec6-b752-70d6cb59f932"
|
|
108
|
-
}')
|
|
109
|
-
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
|
|
110
|
-
begin
|
|
111
|
-
response = sg.client.mail._("send").post(request_body: data)
|
|
112
|
-
rescue Exception => e
|
|
113
|
-
puts e.message
|
|
114
|
-
end
|
|
115
|
-
puts response.status_code
|
|
116
|
-
puts response.body
|
|
117
|
-
puts response.parsed_body
|
|
118
|
-
puts response.headers
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Adding Attachments
|
|
122
|
-
|
|
123
|
-
```ruby
|
|
124
|
-
attachment = Attachment.new
|
|
125
|
-
attachment.content = Base64.strict_encode64(File.open(fpath, 'rb').read)
|
|
126
|
-
attachment.type = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
127
|
-
attachment.filename = fname
|
|
128
|
-
attachment.disposition = 'attachment'
|
|
129
|
-
attachment.content_id = 'Reports Sheet'
|
|
130
|
-
mail.add_attachment(attachment)
|
|
131
|
-
|
|
132
|
-
```
|
|
133
|
-
Attachments must be base64 encoded, using Base64's strict_encode64 where no line feeds are added.
|
|
134
|
-
|
|
135
|
-
<a name="domain-whitelabel"></a>
|
|
136
|
-
# How to Setup a Domain Whitelabel
|
|
137
|
-
|
|
138
|
-
You can find documentation for how to setup a domain whitelabel via the UI [here](https://sendgrid.com/docs/Classroom/Basics/Whitelabel/setup_domain_whitelabel.html) and via API [here](https://github.com/sendgrid/sendgrid-ruby/blob/master/USAGE.md#whitelabel).
|
|
139
|
-
|
|
140
|
-
Find more information about all of SendGrid's whitelabeling related documentation [here](https://sendgrid.com/docs/Classroom/Basics/Whitelabel/index.html).
|
|
141
|
-
|
|
142
|
-
<a name="email-statistics"></a>
|
|
143
|
-
# How to View Email Statistics
|
|
144
|
-
|
|
145
|
-
You can find documentation for how to view your email statistics via the UI [here](https://app.sendgrid.com/statistics) and via API [here](https://github.com/sendgrid/sendgrid-ruby/blob/master/USAGE.md#stats).
|
|
146
|
-
|
|
147
|
-
Alternatively, we can post events to a URL of your choice via our [Event Webhook](https://sendgrid.com/docs/API_Reference/Webhooks/event.html) about events that occur as SendGrid processes your email.
|
data/docker/Dockerfile
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
FROM ruby:2.4.2-jessie
|
|
2
|
-
|
|
3
|
-
# Clone sendgrid-ruby
|
|
4
|
-
WORKDIR /sources
|
|
5
|
-
RUN git clone https://github.com/sendgrid/sendgrid-ruby.git
|
|
6
|
-
|
|
7
|
-
# Bundle
|
|
8
|
-
WORKDIR /sources/sendgrid-ruby
|
|
9
|
-
RUN bundle install
|
|
10
|
-
|
|
11
|
-
# Install prism
|
|
12
|
-
RUN curl https://raw.githubusercontent.com/stoplightio/prism/master/install.sh | sh
|
data/docker/README.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Docker image for sendgrid-ruby
|
|
2
|
-
|
|
3
|
-
## Quickstart
|
|
4
|
-
1. [Install Docker](https://docs.docker.com/engine/installation/) on your machine.
|
|
5
|
-
2. Run `docker run --rm -it sendgrid/sendgrid-ruby irb`.
|
|
6
|
-
3. Run `require './lib/sendgrid-ruby.rb'`.
|
|
7
|
-
|
|
8
|
-
## Poke around
|
|
9
|
-
|
|
10
|
-
If you would like to just poke around in the image and check some examples:
|
|
11
|
-
```sh
|
|
12
|
-
docker run --rm -it sendgrid/sendgrid-ruby bash
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
If you want to mount your fork or specific version of the gem:
|
|
16
|
-
```sh
|
|
17
|
-
docker run --rm -v /path/to/local/sendgrid-ruby:/sources/sendgrid-ruby -it sendgrid/sendgrid-ruby bash
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Running tests
|
|
21
|
-
|
|
22
|
-
If you would like to run the tests present in the image:
|
|
23
|
-
```sh
|
|
24
|
-
docker run --rm sendgrid/sendgrid-ruby rake
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
If you want to run tests on your fork or a specific version, mount the codebase onto the image:
|
|
28
|
-
```sh
|
|
29
|
-
docker run --rm -v /path/to/local/sendgrid-ruby:/sources/sendgrid-ruby sendgrid/sendgrid-ruby rake
|
|
30
|
-
```
|
data/lib/sendgrid/client.rb
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Quickly and easily access the SendGrid API.
|
|
2
|
-
require 'ruby_http_client'
|
|
3
|
-
require_relative 'version'
|
|
4
|
-
|
|
5
|
-
module SendGrid
|
|
6
|
-
# Initialize the HTTP client
|
|
7
|
-
class API
|
|
8
|
-
attr_accessor :client
|
|
9
|
-
attr_reader :request_headers, :host, :version
|
|
10
|
-
# * *Args* :
|
|
11
|
-
# - +api_key+ -> your SendGrid API key
|
|
12
|
-
# - +host+ -> the base URL for the API
|
|
13
|
-
# - +request_headers+ -> any headers that you want to be globally applied
|
|
14
|
-
# - +version+ -> the version of the API you wish to access,
|
|
15
|
-
# currently only "v3" is supported
|
|
16
|
-
#
|
|
17
|
-
def initialize(api_key: '', host: nil, request_headers: nil, version: nil)
|
|
18
|
-
@api_key = api_key
|
|
19
|
-
@host = host ? host : 'https://api.sendgrid.com'
|
|
20
|
-
@version = version ? version : 'v3'
|
|
21
|
-
@user_agent = "sendgrid/#{SendGrid::VERSION};ruby"
|
|
22
|
-
@request_headers = JSON.parse('
|
|
23
|
-
{
|
|
24
|
-
"Authorization": "Bearer ' + @api_key + '",
|
|
25
|
-
"Accept": "application/json",
|
|
26
|
-
"User-agent": "' + @user_agent + '"
|
|
27
|
-
}
|
|
28
|
-
')
|
|
29
|
-
|
|
30
|
-
@request_headers = @request_headers.merge(request_headers) if request_headers
|
|
31
|
-
@client = Client.new(host: "#{@host}/#{@version}",
|
|
32
|
-
request_headers: @request_headers)
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|