any_sms-backend-aws 0.0.2 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e2bcec159b70d4fba5abe670571ac31a458eeaae
4
- data.tar.gz: 991da348a4f1988dc6b4175b4eab9fa0c1ba32ad
3
+ metadata.gz: 7be15446e0d2c5cd620753c22b01227b1f646281
4
+ data.tar.gz: 0c79db1f3be2aea33bb3503221c649743790e1f2
5
5
  SHA512:
6
- metadata.gz: 1a58c20681e17fa46351f6a0ebaa04887e75a40197e0658ec44686ada60f9ae97b53105fcc7451fdbd1f669d4ab8d51e0b7e30b2bbff590422b3c97faa20ada2
7
- data.tar.gz: c7c11f79c30ec45d3e9bea31a3ecb66a70c4ac0541e04a29433d54cd6a66aee06bed9cf5c68a3ce3bd6cf37ef2f75ac871c7f1f12fbfccb69d87a96e98894f0e
6
+ metadata.gz: 23c6c528880ced47660d8d65352a9e2ea1b6fc1c5bf24034b2de2551c069dfa007c5307f241acbab4d30fdc5ee92af4ae760b2f71dfd39585e902a79190e62ab
7
+ data.tar.gz: 7743768d506202aa0079b486e7a40545ce1940a6efd5796c8930cc0bfc9447103dbae5eae3c58f804de4ef4a2041f08e6b1c97a0ec22124d202d38d355e85936
data/README.md CHANGED
@@ -1,8 +1,7 @@
1
1
  # AnySMS::Backend::AWS
2
2
  [![Build Status](https://travis-ci.org/Fedcomp/any_sms-backend-aws.svg?branch=master)](https://travis-ci.org/Fedcomp/any_sms-backend-aws)
3
3
 
4
- AnySMS backend to send sms using [Amazon Web Services](https://aws.amazon.com).
5
- **At this point gem does not support SenderID**. If you know how to specify it - open issue or make pull request, all contributions are welcome!
4
+ AnySMS backend to send sms using [AWS](https://aws.amazon.com) SNS service.
6
5
 
7
6
  ## Before installation - obtaining token
8
7
 
@@ -34,38 +33,36 @@ you may read them [here](https://goo.gl/sajJgL) and configure it more strict or
34
33
  Add this line to your application's Gemfile:
35
34
 
36
35
  ```ruby
37
- gem "any_sms-backend-aws"
36
+ gem "any_sms-backend-aws", "~> 1.0"
38
37
  ```
39
38
 
40
39
  Then somewhere in your initialization code:
41
40
 
42
41
  ```ruby
43
- require "any_sms"
44
42
  require "any_sms-backend-aws"
45
43
 
46
44
  AnySMS.configure do |c|
47
- c.register_backend(:my_main_backend,
45
+ c.register_backend(:my_aws_backend,
48
46
  AnySMS::Backend::AWS,
49
- access_key: ENV["AWS_ACCESS_KEY"],
47
+ access_key: ENV["AWS_ACCESS_KEY"],
50
48
  secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"],
51
- region: ENV["AWS_REGION"] # Optional, default will be "us-east-1"
49
+ region: ENV["AWS_REGION"] # Optional, default will be "us-east-1"
52
50
  )
53
51
 
54
- c.default_backend = :my_main_backend
52
+ c.default_backend = :my_aws_backend
55
53
  end
56
54
  ```
57
- This is an simple example of configuration.
55
+ This is an simple example configuration.
58
56
  Before running application you should specify
59
57
  `AWS_ACCESS_KEY`, `AWS_SECRET_ACCESS_KEY` and `AWS_REGION`
60
58
  environment variables.
61
- You may change initializer code to suit your needs more,
62
- just make sure **you never store credentials commited to your codebase**.
63
- It should be stored separately from application.
59
+
60
+ !!Make sure **you never commit credentials (secrets) to your repository**!!
64
61
 
65
62
  Now, whenever you need to send SMS, just do:
66
63
 
67
64
  ```ruby
68
- # Will immediately send sms
65
+ # Will immediately send sms using AWS sns
69
66
  AnySMS.send_sms("+10000000000", "My sms text")
70
67
  ```
71
68
 
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  lib = File.expand_path("../lib", __FILE__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require "any_sms/backend/aws/version"
@@ -28,16 +26,17 @@ Gem::Specification.new do |spec|
28
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
27
  spec.require_paths = ["lib"]
30
28
 
31
- spec.add_dependency "any_sms"
32
- spec.add_dependency "aws-sdk", "~> 2.6"
29
+ spec.add_dependency "any_sms", "~> 0.4.0"
30
+ spec.add_dependency "aws-sdk", ">= 2.6", "~> 3"
33
31
 
34
32
  spec.add_development_dependency "bundler", "~> 1.12"
35
- spec.add_development_dependency "rake", "~> 10.0"
36
- spec.add_development_dependency "rubocop"
37
- spec.add_development_dependency "rspec", "~> 3.0"
38
- spec.add_development_dependency "webmock", "~> 2.1"
39
33
  spec.add_development_dependency "guard", "~> 2.14"
40
34
  spec.add_development_dependency "guard-rspec", "~> 4.7"
41
35
  spec.add_development_dependency "guard-yard"
42
36
  spec.add_development_dependency "pry-byebug", "~> 3.4"
37
+ spec.add_development_dependency "rake", "~> 10.0"
38
+ spec.add_development_dependency "rspec", "~> 3.0"
39
+ spec.add_development_dependency "rubocop"
40
+ spec.add_development_dependency "webmock", "~> 2.1"
43
41
  end
42
+ # rubocop:enable Metrics/BlockLength
@@ -0,0 +1 @@
1
+ .envrc
data/example/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "any_sms-backend-aws", path: "../../"
@@ -0,0 +1,556 @@
1
+ PATH
2
+ remote: ../..
3
+ specs:
4
+ any_sms-backend-aws (0.1.0)
5
+ any_sms (~> 0.4.0)
6
+ aws-sdk (~> 3, >= 2.6)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ any_sms (0.4.0)
12
+ aws-partitions (1.57.0)
13
+ aws-sdk (3.0.1)
14
+ aws-sdk-resources (~> 3)
15
+ aws-sdk-acm (1.2.0)
16
+ aws-sdk-core (~> 3)
17
+ aws-sigv4 (~> 1.0)
18
+ aws-sdk-alexaforbusiness (1.1.0)
19
+ aws-sdk-core (~> 3)
20
+ aws-sigv4 (~> 1.0)
21
+ aws-sdk-apigateway (1.9.0)
22
+ aws-sdk-core (~> 3)
23
+ aws-sigv4 (~> 1.0)
24
+ aws-sdk-applicationautoscaling (1.7.0)
25
+ aws-sdk-core (~> 3)
26
+ aws-sigv4 (~> 1.0)
27
+ aws-sdk-applicationdiscoveryservice (1.1.0)
28
+ aws-sdk-core (~> 3)
29
+ aws-sigv4 (~> 1.0)
30
+ aws-sdk-appstream (1.4.0)
31
+ aws-sdk-core (~> 3)
32
+ aws-sigv4 (~> 1.0)
33
+ aws-sdk-appsync (1.0.0)
34
+ aws-sdk-core (~> 3)
35
+ aws-sigv4 (~> 1.0)
36
+ aws-sdk-athena (1.0.0)
37
+ aws-sdk-core (~> 3)
38
+ aws-sigv4 (~> 1.0)
39
+ aws-sdk-autoscaling (1.4.0)
40
+ aws-sdk-core (~> 3)
41
+ aws-sigv4 (~> 1.0)
42
+ aws-sdk-autoscalingplans (1.1.0)
43
+ aws-sdk-core (~> 3)
44
+ aws-sigv4 (~> 1.0)
45
+ aws-sdk-batch (1.3.0)
46
+ aws-sdk-core (~> 3)
47
+ aws-sigv4 (~> 1.0)
48
+ aws-sdk-budgets (1.4.0)
49
+ aws-sdk-core (~> 3)
50
+ aws-sigv4 (~> 1.0)
51
+ aws-sdk-cloud9 (1.0.0)
52
+ aws-sdk-core (~> 3)
53
+ aws-sigv4 (~> 1.0)
54
+ aws-sdk-clouddirectory (1.1.0)
55
+ aws-sdk-core (~> 3)
56
+ aws-sigv4 (~> 1.0)
57
+ aws-sdk-cloudformation (1.3.0)
58
+ aws-sdk-core (~> 3)
59
+ aws-sigv4 (~> 1.0)
60
+ aws-sdk-cloudfront (1.1.0)
61
+ aws-sdk-core (~> 3)
62
+ aws-sigv4 (~> 1.0)
63
+ aws-sdk-cloudhsm (1.3.0)
64
+ aws-sdk-core (~> 3)
65
+ aws-sigv4 (~> 1.0)
66
+ aws-sdk-cloudhsmv2 (1.1.0)
67
+ aws-sdk-core (~> 3)
68
+ aws-sigv4 (~> 1.0)
69
+ aws-sdk-cloudsearch (1.0.0)
70
+ aws-sdk-core (~> 3)
71
+ aws-sigv4 (~> 1.0)
72
+ aws-sdk-cloudsearchdomain (1.0.0)
73
+ aws-sdk-core (~> 3)
74
+ aws-sigv4 (~> 1.0)
75
+ aws-sdk-cloudtrail (1.0.0)
76
+ aws-sdk-core (~> 3)
77
+ aws-sigv4 (~> 1.0)
78
+ aws-sdk-cloudwatch (1.4.0)
79
+ aws-sdk-core (~> 3)
80
+ aws-sigv4 (~> 1.0)
81
+ aws-sdk-cloudwatchevents (1.1.0)
82
+ aws-sdk-core (~> 3)
83
+ aws-sigv4 (~> 1.0)
84
+ aws-sdk-cloudwatchlogs (1.2.0)
85
+ aws-sdk-core (~> 3)
86
+ aws-sigv4 (~> 1.0)
87
+ aws-sdk-codebuild (1.6.0)
88
+ aws-sdk-core (~> 3)
89
+ aws-sigv4 (~> 1.0)
90
+ aws-sdk-codecommit (1.2.0)
91
+ aws-sdk-core (~> 3)
92
+ aws-sigv4 (~> 1.0)
93
+ aws-sdk-codedeploy (1.3.0)
94
+ aws-sdk-core (~> 3)
95
+ aws-sigv4 (~> 1.0)
96
+ aws-sdk-codepipeline (1.1.0)
97
+ aws-sdk-core (~> 3)
98
+ aws-sigv4 (~> 1.0)
99
+ aws-sdk-codestar (1.1.0)
100
+ aws-sdk-core (~> 3)
101
+ aws-sigv4 (~> 1.0)
102
+ aws-sdk-cognitoidentity (1.0.0)
103
+ aws-sdk-core (~> 3)
104
+ aws-sigv4 (~> 1.0)
105
+ aws-sdk-cognitoidentityprovider (1.2.0)
106
+ aws-sdk-core (~> 3)
107
+ aws-sigv4 (~> 1.0)
108
+ aws-sdk-cognitosync (1.0.0)
109
+ aws-sdk-core (~> 3)
110
+ aws-sigv4 (~> 1.0)
111
+ aws-sdk-comprehend (1.0.0)
112
+ aws-sdk-core (~> 3)
113
+ aws-sigv4 (~> 1.0)
114
+ aws-sdk-configservice (1.5.0)
115
+ aws-sdk-core (~> 3)
116
+ aws-sigv4 (~> 1.0)
117
+ aws-sdk-core (3.14.0)
118
+ aws-partitions (~> 1.0)
119
+ aws-sigv4 (~> 1.0)
120
+ jmespath (~> 1.0)
121
+ aws-sdk-costandusagereportservice (1.0.0)
122
+ aws-sdk-core (~> 3)
123
+ aws-sigv4 (~> 1.0)
124
+ aws-sdk-costexplorer (1.0.0)
125
+ aws-sdk-core (~> 3)
126
+ aws-sigv4 (~> 1.0)
127
+ aws-sdk-databasemigrationservice (1.3.0)
128
+ aws-sdk-core (~> 3)
129
+ aws-sigv4 (~> 1.0)
130
+ aws-sdk-datapipeline (1.0.0)
131
+ aws-sdk-core (~> 3)
132
+ aws-sigv4 (~> 1.0)
133
+ aws-sdk-dax (1.0.0)
134
+ aws-sdk-core (~> 3)
135
+ aws-sigv4 (~> 1.0)
136
+ aws-sdk-devicefarm (1.3.0)
137
+ aws-sdk-core (~> 3)
138
+ aws-sigv4 (~> 1.0)
139
+ aws-sdk-directconnect (1.1.0)
140
+ aws-sdk-core (~> 3)
141
+ aws-sigv4 (~> 1.0)
142
+ aws-sdk-directoryservice (1.1.0)
143
+ aws-sdk-core (~> 3)
144
+ aws-sigv4 (~> 1.0)
145
+ aws-sdk-dynamodb (1.3.0)
146
+ aws-sdk-core (~> 3)
147
+ aws-sigv4 (~> 1.0)
148
+ aws-sdk-dynamodbstreams (1.0.0)
149
+ aws-sdk-core (~> 3)
150
+ aws-sigv4 (~> 1.0)
151
+ aws-sdk-ec2 (1.25.0)
152
+ aws-sdk-core (~> 3)
153
+ aws-sigv4 (~> 1.0)
154
+ aws-sdk-ecr (1.2.0)
155
+ aws-sdk-core (~> 3)
156
+ aws-sigv4 (~> 1.0)
157
+ aws-sdk-ecs (1.8.0)
158
+ aws-sdk-core (~> 3)
159
+ aws-sigv4 (~> 1.0)
160
+ aws-sdk-efs (1.0.0)
161
+ aws-sdk-core (~> 3)
162
+ aws-sigv4 (~> 1.0)
163
+ aws-sdk-elasticache (1.3.0)
164
+ aws-sdk-core (~> 3)
165
+ aws-sigv4 (~> 1.0)
166
+ aws-sdk-elasticbeanstalk (1.3.0)
167
+ aws-sdk-core (~> 3)
168
+ aws-sigv4 (~> 1.0)
169
+ aws-sdk-elasticloadbalancing (1.2.0)
170
+ aws-sdk-core (~> 3)
171
+ aws-sigv4 (~> 1.0)
172
+ aws-sdk-elasticloadbalancingv2 (1.7.0)
173
+ aws-sdk-core (~> 3)
174
+ aws-sigv4 (~> 1.0)
175
+ aws-sdk-elasticsearchservice (1.3.0)
176
+ aws-sdk-core (~> 3)
177
+ aws-sigv4 (~> 1.0)
178
+ aws-sdk-elastictranscoder (1.0.0)
179
+ aws-sdk-core (~> 3)
180
+ aws-sigv4 (~> 1.0)
181
+ aws-sdk-emr (1.1.0)
182
+ aws-sdk-core (~> 3)
183
+ aws-sigv4 (~> 1.0)
184
+ aws-sdk-firehose (1.1.0)
185
+ aws-sdk-core (~> 3)
186
+ aws-sigv4 (~> 1.0)
187
+ aws-sdk-gamelift (1.1.0)
188
+ aws-sdk-core (~> 3)
189
+ aws-sigv4 (~> 1.0)
190
+ aws-sdk-glacier (1.5.0)
191
+ aws-sdk-core (~> 3)
192
+ aws-sigv4 (~> 1.0)
193
+ aws-sdk-glue (1.4.0)
194
+ aws-sdk-core (~> 3)
195
+ aws-sigv4 (~> 1.0)
196
+ aws-sdk-greengrass (1.2.0)
197
+ aws-sdk-core (~> 3)
198
+ aws-sigv4 (~> 1.0)
199
+ aws-sdk-guardduty (1.1.0)
200
+ aws-sdk-core (~> 3)
201
+ aws-sigv4 (~> 1.0)
202
+ aws-sdk-health (1.0.0)
203
+ aws-sdk-core (~> 3)
204
+ aws-sigv4 (~> 1.0)
205
+ aws-sdk-iam (1.3.0)
206
+ aws-sdk-core (~> 3)
207
+ aws-sigv4 (~> 1.0)
208
+ aws-sdk-importexport (1.0.0)
209
+ aws-sdk-core (~> 3)
210
+ aws-sigv2 (~> 1.0)
211
+ aws-sdk-inspector (1.3.0)
212
+ aws-sdk-core (~> 3)
213
+ aws-sigv4 (~> 1.0)
214
+ aws-sdk-iot (1.3.0)
215
+ aws-sdk-core (~> 3)
216
+ aws-sigv4 (~> 1.0)
217
+ aws-sdk-iotdataplane (1.0.0)
218
+ aws-sdk-core (~> 3)
219
+ aws-sigv4 (~> 1.0)
220
+ aws-sdk-iotjobsdataplane (1.0.0)
221
+ aws-sdk-core (~> 3)
222
+ aws-sigv4 (~> 1.0)
223
+ aws-sdk-kinesis (1.1.0)
224
+ aws-sdk-core (~> 3)
225
+ aws-sigv4 (~> 1.0)
226
+ aws-sdk-kinesisanalytics (1.2.0)
227
+ aws-sdk-core (~> 3)
228
+ aws-sigv4 (~> 1.0)
229
+ aws-sdk-kinesisvideo (1.0.0)
230
+ aws-sdk-core (~> 3)
231
+ aws-sigv4 (~> 1.0)
232
+ aws-sdk-kinesisvideoarchivedmedia (1.0.0)
233
+ aws-sdk-core (~> 3)
234
+ aws-sigv4 (~> 1.0)
235
+ aws-sdk-kinesisvideomedia (1.0.0)
236
+ aws-sdk-core (~> 3)
237
+ aws-sigv4 (~> 1.0)
238
+ aws-sdk-kms (1.4.0)
239
+ aws-sdk-core (~> 3)
240
+ aws-sigv4 (~> 1.0)
241
+ aws-sdk-lambda (1.4.0)
242
+ aws-sdk-core (~> 3)
243
+ aws-sigv4 (~> 1.0)
244
+ aws-sdk-lambdapreview (1.0.0)
245
+ aws-sdk-core (~> 3)
246
+ aws-sigv4 (~> 1.0)
247
+ aws-sdk-lex (1.2.0)
248
+ aws-sdk-core (~> 3)
249
+ aws-sigv4 (~> 1.0)
250
+ aws-sdk-lexmodelbuildingservice (1.3.0)
251
+ aws-sdk-core (~> 3)
252
+ aws-sigv4 (~> 1.0)
253
+ aws-sdk-lightsail (1.3.0)
254
+ aws-sdk-core (~> 3)
255
+ aws-sigv4 (~> 1.0)
256
+ aws-sdk-machinelearning (1.0.0)
257
+ aws-sdk-core (~> 3)
258
+ aws-sigv4 (~> 1.0)
259
+ aws-sdk-marketplacecommerceanalytics (1.0.0)
260
+ aws-sdk-core (~> 3)
261
+ aws-sigv4 (~> 1.0)
262
+ aws-sdk-marketplaceentitlementservice (1.0.0)
263
+ aws-sdk-core (~> 3)
264
+ aws-sigv4 (~> 1.0)
265
+ aws-sdk-marketplacemetering (1.0.0)
266
+ aws-sdk-core (~> 3)
267
+ aws-sigv4 (~> 1.0)
268
+ aws-sdk-mediaconvert (1.0.0)
269
+ aws-sdk-core (~> 3)
270
+ aws-sigv4 (~> 1.0)
271
+ aws-sdk-medialive (1.1.0)
272
+ aws-sdk-core (~> 3)
273
+ aws-sigv4 (~> 1.0)
274
+ aws-sdk-mediapackage (1.0.0)
275
+ aws-sdk-core (~> 3)
276
+ aws-sigv4 (~> 1.0)
277
+ aws-sdk-mediastore (1.0.0)
278
+ aws-sdk-core (~> 3)
279
+ aws-sigv4 (~> 1.0)
280
+ aws-sdk-mediastoredata (1.1.0)
281
+ aws-sdk-core (~> 3)
282
+ aws-sigv4 (~> 1.0)
283
+ aws-sdk-migrationhub (1.0.0)
284
+ aws-sdk-core (~> 3)
285
+ aws-sigv4 (~> 1.0)
286
+ aws-sdk-mobile (1.0.0)
287
+ aws-sdk-core (~> 3)
288
+ aws-sigv4 (~> 1.0)
289
+ aws-sdk-mq (1.0.0)
290
+ aws-sdk-core (~> 3)
291
+ aws-sigv4 (~> 1.0)
292
+ aws-sdk-mturk (1.2.0)
293
+ aws-sdk-core (~> 3)
294
+ aws-sigv4 (~> 1.0)
295
+ aws-sdk-opsworks (1.1.0)
296
+ aws-sdk-core (~> 3)
297
+ aws-sigv4 (~> 1.0)
298
+ aws-sdk-opsworkscm (1.2.0)
299
+ aws-sdk-core (~> 3)
300
+ aws-sigv4 (~> 1.0)
301
+ aws-sdk-organizations (1.7.0)
302
+ aws-sdk-core (~> 3)
303
+ aws-sigv4 (~> 1.0)
304
+ aws-sdk-pinpoint (1.2.0)
305
+ aws-sdk-core (~> 3)
306
+ aws-sigv4 (~> 1.0)
307
+ aws-sdk-polly (1.4.0)
308
+ aws-sdk-core (~> 3)
309
+ aws-sigv4 (~> 1.0)
310
+ aws-sdk-pricing (1.0.0)
311
+ aws-sdk-core (~> 3)
312
+ aws-sigv4 (~> 1.0)
313
+ aws-sdk-rds (1.11.0)
314
+ aws-sdk-core (~> 3)
315
+ aws-sigv4 (~> 1.0)
316
+ aws-sdk-redshift (1.1.0)
317
+ aws-sdk-core (~> 3)
318
+ aws-sigv4 (~> 1.0)
319
+ aws-sdk-rekognition (1.2.0)
320
+ aws-sdk-core (~> 3)
321
+ aws-sigv4 (~> 1.0)
322
+ aws-sdk-resourcegroups (1.0.0)
323
+ aws-sdk-core (~> 3)
324
+ aws-sigv4 (~> 1.0)
325
+ aws-sdk-resourcegroupstaggingapi (1.0.0)
326
+ aws-sdk-core (~> 3)
327
+ aws-sigv4 (~> 1.0)
328
+ aws-sdk-resources (3.12.0)
329
+ aws-sdk-acm (~> 1)
330
+ aws-sdk-alexaforbusiness (~> 1)
331
+ aws-sdk-apigateway (~> 1)
332
+ aws-sdk-applicationautoscaling (~> 1)
333
+ aws-sdk-applicationdiscoveryservice (~> 1)
334
+ aws-sdk-appstream (~> 1)
335
+ aws-sdk-appsync (~> 1)
336
+ aws-sdk-athena (~> 1)
337
+ aws-sdk-autoscaling (~> 1)
338
+ aws-sdk-autoscalingplans (~> 1)
339
+ aws-sdk-batch (~> 1)
340
+ aws-sdk-budgets (~> 1)
341
+ aws-sdk-cloud9 (~> 1)
342
+ aws-sdk-clouddirectory (~> 1)
343
+ aws-sdk-cloudformation (~> 1)
344
+ aws-sdk-cloudfront (~> 1)
345
+ aws-sdk-cloudhsm (~> 1)
346
+ aws-sdk-cloudhsmv2 (~> 1)
347
+ aws-sdk-cloudsearch (~> 1)
348
+ aws-sdk-cloudsearchdomain (~> 1)
349
+ aws-sdk-cloudtrail (~> 1)
350
+ aws-sdk-cloudwatch (~> 1)
351
+ aws-sdk-cloudwatchevents (~> 1)
352
+ aws-sdk-cloudwatchlogs (~> 1)
353
+ aws-sdk-codebuild (~> 1)
354
+ aws-sdk-codecommit (~> 1)
355
+ aws-sdk-codedeploy (~> 1)
356
+ aws-sdk-codepipeline (~> 1)
357
+ aws-sdk-codestar (~> 1)
358
+ aws-sdk-cognitoidentity (~> 1)
359
+ aws-sdk-cognitoidentityprovider (~> 1)
360
+ aws-sdk-cognitosync (~> 1)
361
+ aws-sdk-comprehend (~> 1)
362
+ aws-sdk-configservice (~> 1)
363
+ aws-sdk-costandusagereportservice (~> 1)
364
+ aws-sdk-costexplorer (~> 1)
365
+ aws-sdk-databasemigrationservice (~> 1)
366
+ aws-sdk-datapipeline (~> 1)
367
+ aws-sdk-dax (~> 1)
368
+ aws-sdk-devicefarm (~> 1)
369
+ aws-sdk-directconnect (~> 1)
370
+ aws-sdk-directoryservice (~> 1)
371
+ aws-sdk-dynamodb (~> 1)
372
+ aws-sdk-dynamodbstreams (~> 1)
373
+ aws-sdk-ec2 (~> 1)
374
+ aws-sdk-ecr (~> 1)
375
+ aws-sdk-ecs (~> 1)
376
+ aws-sdk-efs (~> 1)
377
+ aws-sdk-elasticache (~> 1)
378
+ aws-sdk-elasticbeanstalk (~> 1)
379
+ aws-sdk-elasticloadbalancing (~> 1)
380
+ aws-sdk-elasticloadbalancingv2 (~> 1)
381
+ aws-sdk-elasticsearchservice (~> 1)
382
+ aws-sdk-elastictranscoder (~> 1)
383
+ aws-sdk-emr (~> 1)
384
+ aws-sdk-firehose (~> 1)
385
+ aws-sdk-gamelift (~> 1)
386
+ aws-sdk-glacier (~> 1)
387
+ aws-sdk-glue (~> 1)
388
+ aws-sdk-greengrass (~> 1)
389
+ aws-sdk-guardduty (~> 1)
390
+ aws-sdk-health (~> 1)
391
+ aws-sdk-iam (~> 1)
392
+ aws-sdk-importexport (~> 1)
393
+ aws-sdk-inspector (~> 1)
394
+ aws-sdk-iot (~> 1)
395
+ aws-sdk-iotdataplane (~> 1)
396
+ aws-sdk-iotjobsdataplane (~> 1)
397
+ aws-sdk-kinesis (~> 1)
398
+ aws-sdk-kinesisanalytics (~> 1)
399
+ aws-sdk-kinesisvideo (~> 1)
400
+ aws-sdk-kinesisvideoarchivedmedia (~> 1)
401
+ aws-sdk-kinesisvideomedia (~> 1)
402
+ aws-sdk-kms (~> 1)
403
+ aws-sdk-lambda (~> 1)
404
+ aws-sdk-lambdapreview (~> 1)
405
+ aws-sdk-lex (~> 1)
406
+ aws-sdk-lexmodelbuildingservice (~> 1)
407
+ aws-sdk-lightsail (~> 1)
408
+ aws-sdk-machinelearning (~> 1)
409
+ aws-sdk-marketplacecommerceanalytics (~> 1)
410
+ aws-sdk-marketplaceentitlementservice (~> 1)
411
+ aws-sdk-marketplacemetering (~> 1)
412
+ aws-sdk-mediaconvert (~> 1)
413
+ aws-sdk-medialive (~> 1)
414
+ aws-sdk-mediapackage (~> 1)
415
+ aws-sdk-mediastore (~> 1)
416
+ aws-sdk-mediastoredata (~> 1)
417
+ aws-sdk-migrationhub (~> 1)
418
+ aws-sdk-mobile (~> 1)
419
+ aws-sdk-mq (~> 1)
420
+ aws-sdk-mturk (~> 1)
421
+ aws-sdk-opsworks (~> 1)
422
+ aws-sdk-opsworkscm (~> 1)
423
+ aws-sdk-organizations (~> 1)
424
+ aws-sdk-pinpoint (~> 1)
425
+ aws-sdk-polly (~> 1)
426
+ aws-sdk-pricing (~> 1)
427
+ aws-sdk-rds (~> 1)
428
+ aws-sdk-redshift (~> 1)
429
+ aws-sdk-rekognition (~> 1)
430
+ aws-sdk-resourcegroups (~> 1)
431
+ aws-sdk-resourcegroupstaggingapi (~> 1)
432
+ aws-sdk-route53 (~> 1)
433
+ aws-sdk-route53domains (~> 1)
434
+ aws-sdk-s3 (~> 1)
435
+ aws-sdk-sagemaker (~> 1)
436
+ aws-sdk-sagemakerruntime (~> 1)
437
+ aws-sdk-serverlessapplicationrepository (~> 1)
438
+ aws-sdk-servicecatalog (~> 1)
439
+ aws-sdk-servicediscovery (~> 1)
440
+ aws-sdk-ses (~> 1)
441
+ aws-sdk-shield (~> 1)
442
+ aws-sdk-simpledb (~> 1)
443
+ aws-sdk-sms (~> 1)
444
+ aws-sdk-snowball (~> 1)
445
+ aws-sdk-sns (~> 1)
446
+ aws-sdk-sqs (~> 1)
447
+ aws-sdk-ssm (~> 1)
448
+ aws-sdk-states (~> 1)
449
+ aws-sdk-storagegateway (~> 1)
450
+ aws-sdk-support (~> 1)
451
+ aws-sdk-swf (~> 1)
452
+ aws-sdk-transcribeservice (~> 1)
453
+ aws-sdk-translate (~> 1)
454
+ aws-sdk-waf (~> 1)
455
+ aws-sdk-wafregional (~> 1)
456
+ aws-sdk-workdocs (~> 1)
457
+ aws-sdk-workmail (~> 1)
458
+ aws-sdk-workspaces (~> 1)
459
+ aws-sdk-xray (~> 1)
460
+ aws-sdk-route53 (1.7.0)
461
+ aws-sdk-core (~> 3)
462
+ aws-sigv4 (~> 1.0)
463
+ aws-sdk-route53domains (1.1.0)
464
+ aws-sdk-core (~> 3)
465
+ aws-sigv4 (~> 1.0)
466
+ aws-sdk-s3 (1.8.0)
467
+ aws-sdk-core (~> 3)
468
+ aws-sdk-kms (~> 1)
469
+ aws-sigv4 (~> 1.0)
470
+ aws-sdk-sagemaker (1.5.0)
471
+ aws-sdk-core (~> 3)
472
+ aws-sigv4 (~> 1.0)
473
+ aws-sdk-sagemakerruntime (1.0.0)
474
+ aws-sdk-core (~> 3)
475
+ aws-sigv4 (~> 1.0)
476
+ aws-sdk-serverlessapplicationrepository (1.0.0)
477
+ aws-sdk-core (~> 3)
478
+ aws-sigv4 (~> 1.0)
479
+ aws-sdk-servicecatalog (1.2.0)
480
+ aws-sdk-core (~> 3)
481
+ aws-sigv4 (~> 1.0)
482
+ aws-sdk-servicediscovery (1.0.0)
483
+ aws-sdk-core (~> 3)
484
+ aws-sigv4 (~> 1.0)
485
+ aws-sdk-ses (1.6.0)
486
+ aws-sdk-core (~> 3)
487
+ aws-sigv4 (~> 1.0)
488
+ aws-sdk-shield (1.1.0)
489
+ aws-sdk-core (~> 3)
490
+ aws-sigv4 (~> 1.0)
491
+ aws-sdk-simpledb (1.0.0)
492
+ aws-sdk-core (~> 3)
493
+ aws-sigv2 (~> 1.0)
494
+ aws-sdk-sms (1.0.0)
495
+ aws-sdk-core (~> 3)
496
+ aws-sigv4 (~> 1.0)
497
+ aws-sdk-snowball (1.2.0)
498
+ aws-sdk-core (~> 3)
499
+ aws-sigv4 (~> 1.0)
500
+ aws-sdk-sns (1.1.0)
501
+ aws-sdk-core (~> 3)
502
+ aws-sigv4 (~> 1.0)
503
+ aws-sdk-sqs (1.3.0)
504
+ aws-sdk-core (~> 3)
505
+ aws-sigv4 (~> 1.0)
506
+ aws-sdk-ssm (1.6.0)
507
+ aws-sdk-core (~> 3)
508
+ aws-sigv4 (~> 1.0)
509
+ aws-sdk-states (1.2.0)
510
+ aws-sdk-core (~> 3)
511
+ aws-sigv4 (~> 1.0)
512
+ aws-sdk-storagegateway (1.2.0)
513
+ aws-sdk-core (~> 3)
514
+ aws-sigv4 (~> 1.0)
515
+ aws-sdk-support (1.0.0)
516
+ aws-sdk-core (~> 3)
517
+ aws-sigv4 (~> 1.0)
518
+ aws-sdk-swf (1.0.0)
519
+ aws-sdk-core (~> 3)
520
+ aws-sigv4 (~> 1.0)
521
+ aws-sdk-transcribeservice (1.0.0)
522
+ aws-sdk-core (~> 3)
523
+ aws-sigv4 (~> 1.0)
524
+ aws-sdk-translate (1.0.0)
525
+ aws-sdk-core (~> 3)
526
+ aws-sigv4 (~> 1.0)
527
+ aws-sdk-waf (1.3.0)
528
+ aws-sdk-core (~> 3)
529
+ aws-sigv4 (~> 1.0)
530
+ aws-sdk-wafregional (1.3.0)
531
+ aws-sdk-core (~> 3)
532
+ aws-sigv4 (~> 1.0)
533
+ aws-sdk-workdocs (1.1.0)
534
+ aws-sdk-core (~> 3)
535
+ aws-sigv4 (~> 1.0)
536
+ aws-sdk-workmail (1.0.0)
537
+ aws-sdk-core (~> 3)
538
+ aws-sigv4 (~> 1.0)
539
+ aws-sdk-workspaces (1.1.0)
540
+ aws-sdk-core (~> 3)
541
+ aws-sigv4 (~> 1.0)
542
+ aws-sdk-xray (1.1.0)
543
+ aws-sdk-core (~> 3)
544
+ aws-sigv4 (~> 1.0)
545
+ aws-sigv2 (1.0.1)
546
+ aws-sigv4 (1.0.2)
547
+ jmespath (1.3.1)
548
+
549
+ PLATFORMS
550
+ ruby
551
+
552
+ DEPENDENCIES
553
+ any_sms-backend-aws!
554
+
555
+ BUNDLED WITH
556
+ 1.16.1
data/example/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # Simple sending script example
2
+
3
+ I use it for acceptance testing of this gem. This code should be always working, if not, please open an issue.
4
+
5
+ # Setup
6
+ You need to set these enviroment variables before using it:
7
+ ```sh
8
+ export AWS_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXX
9
+ export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10
+ export AWS_REGION=us-east-1
11
+ export MY_PHONE_NUMBER=+10000000000 # Set your phone number
12
+ ```
13
+
14
+ Check gem readme on how to get `AWS_ACCESS_KEY` and `AWS_SECRET_ACCESS_KEY`.
15
+
16
+ # Running
17
+ Install gem deps,
18
+ then just add execution permission to the script and run it:
19
+
20
+ ```sh
21
+ $ bundle install
22
+ $ chmod +x send.rb
23
+ $ ./send.rb
24
+ ```
data/example/send.rb ADDED
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ require "rubygems"
3
+ require "bundler/setup"
4
+ require "any_sms-backend-aws"
5
+ require "pry-byebug"
6
+
7
+ # Initializer code
8
+ AnySMS.configure do |c|
9
+ c.register_backend(
10
+ :my_aws_backend,
11
+ AnySMS::Backend::AWS,
12
+ access_key: ENV["AWS_ACCESS_KEY"],
13
+ secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"],
14
+ region: ENV["AWS_REGION"] # Optional, default will be "us-east-1"
15
+ )
16
+
17
+ c.default_backend = :my_aws_backend
18
+ end
19
+
20
+ # Anywhere in your app
21
+ text = "some sms text"
22
+ resp = AnySMS.send_sms(ENV["MY_PHONE_NUMBER"], text)
23
+
24
+ # immediate response check
25
+ if resp.success?
26
+ puts "Sms should be sent to #{ENV['MY_PHONE_NUMBER']} with text: #{text.inspect}"
27
+ else
28
+ # Technically switch is unecessary and
29
+ # provided only in educational purposes
30
+ case resp.status
31
+ when :runtime_error, :sending_failure
32
+ puts "There was error sending sms (#{resp.status}): "
33
+ raise resp.meta[:error]
34
+ end
35
+ end
@@ -20,14 +20,16 @@ class AnySMS::Backend::AWS < AnySMS::Backend::Base
20
20
  #
21
21
  # @phone [String] Phone number in E.164 format
22
22
  # @text [String] Sms text
23
- def send_sms(phone, text)
23
+ def send_sms(phone, text, _args = {})
24
24
  resp = sns_client.publish(phone_number: phone, message: text)
25
25
 
26
26
  if resp.error.nil? && resp.message_id
27
27
  respond_with_status :success
28
28
  else
29
- respond_with_status :unknown_failure
29
+ respond_with_status :sending_failure, meta: { error: resp.error }
30
30
  end
31
+ rescue StandardError => e
32
+ respond_with_status :runtime_error, meta: { error: e }
31
33
  end
32
34
 
33
35
  protected
@@ -1,5 +1,5 @@
1
1
  module AnySMS
2
2
  module Backend
3
- AWS_VERSION = "0.0.2".freeze
3
+ AWS_VERSION = "0.1.0".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,43 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: any_sms-backend-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fedcomp
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-06 00:00:00.000000000 Z
11
+ date: 2018-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: any_sms
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: aws-sdk
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '2.6'
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '3'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">="
39
42
  - !ruby/object:Gem::Version
40
43
  version: '2.6'
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: bundler
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -53,91 +59,91 @@ dependencies:
53
59
  - !ruby/object:Gem::Version
54
60
  version: '1.12'
55
61
  - !ruby/object:Gem::Dependency
56
- name: rake
62
+ name: guard
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '10.0'
67
+ version: '2.14'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '10.0'
74
+ version: '2.14'
69
75
  - !ruby/object:Gem::Dependency
70
- name: rubocop
76
+ name: guard-rspec
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - ">="
79
+ - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '0'
81
+ version: '4.7'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
- - - ">="
86
+ - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '0'
88
+ version: '4.7'
83
89
  - !ruby/object:Gem::Dependency
84
- name: rspec
90
+ name: guard-yard
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
- - - "~>"
93
+ - - ">="
88
94
  - !ruby/object:Gem::Version
89
- version: '3.0'
95
+ version: '0'
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
- - - "~>"
100
+ - - ">="
95
101
  - !ruby/object:Gem::Version
96
- version: '3.0'
102
+ version: '0'
97
103
  - !ruby/object:Gem::Dependency
98
- name: webmock
104
+ name: pry-byebug
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
107
  - - "~>"
102
108
  - !ruby/object:Gem::Version
103
- version: '2.1'
109
+ version: '3.4'
104
110
  type: :development
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
114
  - - "~>"
109
115
  - !ruby/object:Gem::Version
110
- version: '2.1'
116
+ version: '3.4'
111
117
  - !ruby/object:Gem::Dependency
112
- name: guard
118
+ name: rake
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
121
  - - "~>"
116
122
  - !ruby/object:Gem::Version
117
- version: '2.14'
123
+ version: '10.0'
118
124
  type: :development
119
125
  prerelease: false
120
126
  version_requirements: !ruby/object:Gem::Requirement
121
127
  requirements:
122
128
  - - "~>"
123
129
  - !ruby/object:Gem::Version
124
- version: '2.14'
130
+ version: '10.0'
125
131
  - !ruby/object:Gem::Dependency
126
- name: guard-rspec
132
+ name: rspec
127
133
  requirement: !ruby/object:Gem::Requirement
128
134
  requirements:
129
135
  - - "~>"
130
136
  - !ruby/object:Gem::Version
131
- version: '4.7'
137
+ version: '3.0'
132
138
  type: :development
133
139
  prerelease: false
134
140
  version_requirements: !ruby/object:Gem::Requirement
135
141
  requirements:
136
142
  - - "~>"
137
143
  - !ruby/object:Gem::Version
138
- version: '4.7'
144
+ version: '3.0'
139
145
  - !ruby/object:Gem::Dependency
140
- name: guard-yard
146
+ name: rubocop
141
147
  requirement: !ruby/object:Gem::Requirement
142
148
  requirements:
143
149
  - - ">="
@@ -151,19 +157,19 @@ dependencies:
151
157
  - !ruby/object:Gem::Version
152
158
  version: '0'
153
159
  - !ruby/object:Gem::Dependency
154
- name: pry-byebug
160
+ name: webmock
155
161
  requirement: !ruby/object:Gem::Requirement
156
162
  requirements:
157
163
  - - "~>"
158
164
  - !ruby/object:Gem::Version
159
- version: '3.4'
165
+ version: '2.1'
160
166
  type: :development
161
167
  prerelease: false
162
168
  version_requirements: !ruby/object:Gem::Requirement
163
169
  requirements:
164
170
  - - "~>"
165
171
  - !ruby/object:Gem::Version
166
- version: '3.4'
172
+ version: '2.1'
167
173
  description:
168
174
  email:
169
175
  - aglergen@gmail.com
@@ -181,6 +187,11 @@ files:
181
187
  - README.md
182
188
  - Rakefile
183
189
  - any_sms-backend-aws.gemspec
190
+ - example/.gitignore
191
+ - example/Gemfile
192
+ - example/Gemfile.lock
193
+ - example/README.md
194
+ - example/send.rb
184
195
  - lib/any_sms-backend-aws.rb
185
196
  - lib/any_sms/backend/aws.rb
186
197
  - lib/any_sms/backend/aws/version.rb