sms_kit 1.4.1 → 1.5.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 +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:
|