sms_kit 1.4.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +21 -1
- data/lib/sms_kit.rb +0 -2
- data/lib/sms_kit/http.rb +7 -1
- data/lib/sms_kit/providers/central_ict.rb +1 -1
- data/lib/sms_kit/version.rb +1 -1
- data/test/fixtures/vcr_cassettes/central_ict/failure.yml +1 -1
- data/test/fixtures/vcr_cassettes/central_ict/success.yml +1 -1
- data/test/fixtures/vcr_cassettes/stub_provider/success.yml +1 -1
- data/test/helper.rb +4 -0
- data/test/http_test.rb +18 -2
- data/test/provider_test.rb +1 -1
- metadata +38 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0e876bf680c9b0490171824da6b64d301615ed69764200d0ba62e81d765cec2
|
4
|
+
data.tar.gz: 57ca22cbb144df9fdd21599c751fcaeff567a1229be125b165ec3dbb0c3df9c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b378096ffdb0e52464a8aade1193cfb43e911cf2307b6660291d750de40b3c1c5dd214b3585c7fd1e75a5b84ef1cc4eca7c70b91c8baf46f8039808b0eb82eb7
|
7
|
+
data.tar.gz: 3f9820b7aab4f7a538e4abbc5e6f99758d92172987a19e9d08a8be6bff4e025e4a6f48473b52ac705d22de01f1386321a027a9af1e002ddfce8d29d331ec54e0
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ The goal is to offer one streamlined API for any provider adapter.
|
|
9
9
|
|
10
10
|
Add this line to your application's Gemfile:
|
11
11
|
|
12
|
-
gem 'sms_kit'
|
12
|
+
gem 'sms_kit'
|
13
13
|
|
14
14
|
And then execute:
|
15
15
|
|
@@ -76,6 +76,26 @@ MyProvider.deliver TextMessage.new
|
|
76
76
|
|
77
77
|
```
|
78
78
|
|
79
|
+
### Custom Provider
|
80
|
+
|
81
|
+
```rb
|
82
|
+
class MyProvider < SmsKit::Provider
|
83
|
+
# default url that the built-in http client will use
|
84
|
+
HTTP_ENDPOINT = 'https://www.example.com'.freeze
|
85
|
+
|
86
|
+
# ...
|
87
|
+
|
88
|
+
# custom connection configuration
|
89
|
+
# the default implementation (`super`) accepts a block
|
90
|
+
# which yields you a faraday instance
|
91
|
+
def connection
|
92
|
+
super do |conn|
|
93
|
+
conn.headers[:user_agent] = 'custom user agent'
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
```
|
98
|
+
|
79
99
|
#### Error handling
|
80
100
|
|
81
101
|
SmsKit will throw a `SmsKit::DeliveryError` if something goes wrong.
|
data/lib/sms_kit.rb
CHANGED
data/lib/sms_kit/http.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
require 'sms_kit/version'
|
1
2
|
require 'faraday'
|
2
3
|
|
3
4
|
module SmsKit
|
4
5
|
module HTTP
|
6
|
+
USER_AGENT = "SmsKit/#{VERSION} (https://rubygems.org/gems/sms_kit)"
|
5
7
|
|
6
8
|
def uri
|
7
9
|
@uri ||= URI.parse self.class.const_get 'HTTP_ENDPOINT'
|
@@ -16,7 +18,11 @@ module SmsKit
|
|
16
18
|
end
|
17
19
|
|
18
20
|
def connection
|
19
|
-
|
21
|
+
if 'https' != uri.scheme
|
22
|
+
warn "[SmsKit] Provider '#{self.class.name}' is using an unencrypted connection: #{uri}"
|
23
|
+
end
|
24
|
+
|
25
|
+
@conn ||= Faraday.new "#{uri.scheme}://#{uri.host}" do |f|
|
20
26
|
f.headers[:user_agent] = USER_AGENT
|
21
27
|
f.response :logger, SmsKit.logger
|
22
28
|
f.adapter Faraday.default_adapter
|
data/lib/sms_kit/version.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri:
|
5
|
+
uri: https://api.de.centralict.net/controller/cgi/?body&call=message_sender&dst&pin=&src=123456&subject=&type=SMS&uid=
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri:
|
5
|
+
uri: https://api.de.centralict.net/controller/cgi/?body=foo+bar&call=message_sender&dst=12345&pin=&src=123456&subject=&type=SMS&uid=
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
data/test/helper.rb
CHANGED
data/test/http_test.rb
CHANGED
@@ -3,7 +3,7 @@ require 'helper'
|
|
3
3
|
class MockProvider < ExampleProvider
|
4
4
|
def connection
|
5
5
|
super do |conn|
|
6
|
-
conn.headers[:user_agent] = '
|
6
|
+
conn.headers[:user_agent] = 'custom user agent'
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -11,12 +11,28 @@ end
|
|
11
11
|
class HttpTest < MiniTest::Test
|
12
12
|
|
13
13
|
def setup
|
14
|
+
@default = ExampleProvider.new
|
14
15
|
@mock = MockProvider.new
|
16
|
+
@insecure = InsecureProvider.new
|
15
17
|
end
|
16
18
|
|
17
19
|
def test_connection_config
|
18
20
|
conn = @mock.connection
|
19
|
-
assert_equal '
|
21
|
+
assert_equal 'custom user agent', conn.headers[:user_agent]
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_default_user_agent
|
25
|
+
assert_equal \
|
26
|
+
"SmsKit/#{SmsKit::VERSION} (https://rubygems.org/gems/sms_kit)",
|
27
|
+
@default.connection.headers[:user_agent]
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_insecure_warning
|
31
|
+
_, err = capture_io do
|
32
|
+
@insecure.connection
|
33
|
+
end
|
34
|
+
expected = "[SmsKit] Provider 'InsecureProvider' is using an unencrypted connection: http://www.example.com\n"
|
35
|
+
assert_equal expected, err
|
20
36
|
end
|
21
37
|
|
22
38
|
end
|
data/test/provider_test.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sms_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- glaszig
|
@@ -11,89 +11,103 @@ cert_chain: []
|
|
11
11
|
date: 2020-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '13.0'
|
20
20
|
type: :development
|
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: '13.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '5.13'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '5.13'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: webmock
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '3.7'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '3.7'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: vcr
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 5.0.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 5.0.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: simplecov
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: faraday
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
103
|
+
version: '1.0'
|
90
104
|
type: :runtime
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
110
|
+
version: '1.0'
|
97
111
|
description: SmsKit offers a streamlined API for sending text messages through any
|
98
112
|
supported provider.
|
99
113
|
email:
|