telesign 4.0.2 → 4.1.1
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/lib/telesign/constants.rb +2 -2
- data/lib/telesign/messaging.rb +9 -13
- data/lib/telesign/phoneid.rb +5 -7
- data/lib/telesign/rest.rb +21 -49
- data/lib/telesign/score.rb +26 -6
- data/lib/telesign/util.rb +6 -10
- data/lib/telesign/voice.rb +9 -13
- metadata +26 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bbde29cc0a4c91e2661d802092cbaa9ecd0e83e90884080159d909aee719f2af
|
|
4
|
+
data.tar.gz: 56451c8e2c34a5f0df35f6598a7ed0ef15e323fa7fd4158649648f03fd201aab
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a6aa7c387c3e55deae57de06f8ca7bfa69cc47c9b3d968899d12a670ceb39b19b990e48e8ede2394c72821d1ffc1f8959fd58131afab6644b29347d027c6a072
|
|
7
|
+
data.tar.gz: 2c0e3ad2a77e894c455b9f8d8ad4612a1b9bd27eef8ff44527832960cc47b024043a8ea37bf8556e5362c1cd02fe94186d010ff902511b47a728aebc6744cb7b
|
data/lib/telesign/constants.rb
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
module Telesign
|
|
2
|
-
|
|
3
|
-
end
|
|
2
|
+
SDK_VERSION = '4.1.1'.freeze
|
|
3
|
+
end
|
data/lib/telesign/messaging.rb
CHANGED
|
@@ -1,33 +1,29 @@
|
|
|
1
1
|
require 'telesign/rest'
|
|
2
2
|
|
|
3
|
-
MESSAGING_RESOURCE = '/v1/messaging'
|
|
4
|
-
MESSAGING_STATUS_RESOURCE = '/v1/messaging/%{reference_id}'
|
|
3
|
+
MESSAGING_RESOURCE = '/v1/messaging'.freeze
|
|
4
|
+
MESSAGING_STATUS_RESOURCE = '/v1/messaging/%{reference_id}'.freeze
|
|
5
5
|
|
|
6
6
|
module Telesign
|
|
7
|
-
|
|
8
7
|
# TeleSign's Messaging API allows you to easily send SMS messages. You can send alerts, reminders, and notifications,
|
|
9
8
|
# or you can send verification messages containing one-time passcodes (OTP).
|
|
10
9
|
class MessagingClient < RestClient
|
|
11
|
-
|
|
12
10
|
# Send an SMS message to the target phone number.
|
|
13
11
|
#
|
|
14
12
|
# See https://developer.telesign.com/docs/messaging-api for detailed API documentation.
|
|
15
13
|
def message(phone_number, message, message_type, **params)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
**params)
|
|
14
|
+
post(MESSAGING_RESOURCE,
|
|
15
|
+
phone_number: phone_number,
|
|
16
|
+
message: message,
|
|
17
|
+
message_type: message_type,
|
|
18
|
+
**params)
|
|
22
19
|
end
|
|
23
20
|
|
|
24
21
|
# Retrieve the status of an SMS transaction.
|
|
25
22
|
#
|
|
26
23
|
# See https://developer.telesign.com/docs/messaging-api for detailed API documentation.
|
|
27
24
|
def status(reference_id, **params)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
**params)
|
|
25
|
+
get(format(MESSAGING_STATUS_RESOURCE, reference_id: reference_id),
|
|
26
|
+
**params)
|
|
31
27
|
end
|
|
32
28
|
end
|
|
33
29
|
end
|
data/lib/telesign/phoneid.rb
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
require 'telesign/rest'
|
|
2
2
|
|
|
3
|
-
PHONEID_RESOURCE = '/v1/phoneid/%{phone_number}'
|
|
3
|
+
PHONEID_RESOURCE = '/v1/phoneid/%{phone_number}'.freeze
|
|
4
4
|
|
|
5
5
|
module Telesign
|
|
6
|
-
|
|
7
6
|
# A set of APIs that deliver deep phone number data attributes that help optimize the end user
|
|
8
7
|
# verification process and evaluate risk.
|
|
9
8
|
class PhoneIdClient < RestClient
|
|
10
|
-
|
|
11
9
|
# The PhoneID API provides a cleansed phone number, phone type, and telecom carrier information to determine the
|
|
12
10
|
# best communication method - SMS or voice.
|
|
13
11
|
#
|
|
14
12
|
# See https://developer.telesign.com/docs/phoneid-api for detailed API documentation.
|
|
15
13
|
def phoneid(phone_number, **params)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
**params)
|
|
14
|
+
post(format(PHONEID_RESOURCE, phone_number: phone_number),
|
|
15
|
+
**params)
|
|
19
16
|
end
|
|
20
17
|
|
|
21
18
|
private
|
|
19
|
+
|
|
22
20
|
def content_type
|
|
23
|
-
|
|
21
|
+
'application/json'
|
|
24
22
|
end
|
|
25
23
|
end
|
|
26
24
|
end
|
data/lib/telesign/rest.rb
CHANGED
|
@@ -8,7 +8,6 @@ require 'net/http/persistent'
|
|
|
8
8
|
require_relative 'constants'
|
|
9
9
|
|
|
10
10
|
module Telesign
|
|
11
|
-
|
|
12
11
|
# The TeleSign RestClient is a generic HTTP REST client that can be extended to make requests against any of
|
|
13
12
|
# TeleSign's REST API endpoints.
|
|
14
13
|
#
|
|
@@ -17,19 +16,17 @@ module Telesign
|
|
|
17
16
|
#
|
|
18
17
|
# See https://developer.telesign.com for detailed API documentation.
|
|
19
18
|
class RestClient
|
|
20
|
-
|
|
21
19
|
# A simple HTTP Response object to abstract the underlying net/http library response.
|
|
22
20
|
|
|
23
21
|
# * +http_response+ - A net/http response object.
|
|
24
22
|
class Response
|
|
25
|
-
|
|
26
23
|
attr_accessor :status_code, :headers, :body, :ok, :json
|
|
27
24
|
|
|
28
25
|
def initialize(http_response)
|
|
29
26
|
@status_code = http_response.code
|
|
30
27
|
@headers = http_response.to_hash
|
|
31
28
|
@body = http_response.body
|
|
32
|
-
@ok = http_response.
|
|
29
|
+
@ok = http_response.is_a? Net::HTTPSuccess
|
|
33
30
|
|
|
34
31
|
begin
|
|
35
32
|
@json = JSON.parse(http_response.body)
|
|
@@ -53,23 +50,20 @@ module Telesign
|
|
|
53
50
|
source: 'ruby_telesign',
|
|
54
51
|
sdk_version_origin: Telesign::SDK_VERSION,
|
|
55
52
|
sdk_version_dependency: nil)
|
|
56
|
-
|
|
57
53
|
@customer_id = customer_id
|
|
58
54
|
@api_key = api_key
|
|
59
55
|
@rest_endpoint = rest_endpoint
|
|
60
56
|
|
|
61
57
|
@user_agent = "TeleSignSDK/ruby Ruby/#{RUBY_VERSION} net:http:persistent/#{Net::HTTP::VERSION} OriginatingSDK/#{source} SDKVersion/#{sdk_version_origin}"
|
|
62
58
|
|
|
63
|
-
if
|
|
64
|
-
@user_agent += " DependencySDKVersion/#{sdk_version_dependency}"
|
|
65
|
-
end
|
|
59
|
+
@user_agent += " DependencySDKVersion/#{sdk_version_dependency}" if source != 'ruby_telesign' && !sdk_version_dependency.nil?
|
|
66
60
|
|
|
67
61
|
@http = Net::HTTP::Persistent.new(name: 'telesign', proxy: proxy)
|
|
68
62
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
63
|
+
return if timeout.nil?
|
|
64
|
+
|
|
65
|
+
@http.open_timeout = timeout
|
|
66
|
+
@http.read_timeout = timeout
|
|
73
67
|
end
|
|
74
68
|
|
|
75
69
|
# Generates the TeleSign REST API headers used to authenticate requests.
|
|
@@ -98,16 +92,11 @@ module Telesign
|
|
|
98
92
|
nonce: nil,
|
|
99
93
|
user_agent: nil,
|
|
100
94
|
auth_method: 'HMAC-SHA256')
|
|
95
|
+
date_rfc2616 = Time.now.httpdate if date_rfc2616.nil?
|
|
101
96
|
|
|
102
|
-
if
|
|
103
|
-
date_rfc2616 = Time.now.httpdate
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
if nonce.nil?
|
|
107
|
-
nonce = SecureRandom.uuid
|
|
108
|
-
end
|
|
97
|
+
nonce = SecureRandom.uuid if nonce.nil?
|
|
109
98
|
|
|
110
|
-
content_type =
|
|
99
|
+
content_type = %w[POST PUT PATCH].include?(method_name) ? content_type : ''
|
|
111
100
|
|
|
112
101
|
if auth_method == 'HMAC-SHA256'
|
|
113
102
|
|
|
@@ -121,9 +110,7 @@ module Telesign
|
|
|
121
110
|
|
|
122
111
|
string_to_sign << "\nx-ts-nonce:#{nonce}"
|
|
123
112
|
|
|
124
|
-
if !content_type.empty?
|
|
125
|
-
string_to_sign << "\n#{encoded_fields}"
|
|
126
|
-
end
|
|
113
|
+
string_to_sign << "\n#{encoded_fields}" if !content_type.empty? && !encoded_fields.empty?
|
|
127
114
|
|
|
128
115
|
string_to_sign << "\n#{resource}"
|
|
129
116
|
|
|
@@ -135,27 +122,22 @@ module Telesign
|
|
|
135
122
|
authorization = "TSA #{customer_id}:#{signature}"
|
|
136
123
|
else
|
|
137
124
|
credentials = Base64.strict_encode64("#{customer_id}:#{api_key}")
|
|
138
|
-
|
|
125
|
+
|
|
139
126
|
authorization = "Basic #{credentials}"
|
|
140
127
|
end
|
|
141
128
|
|
|
142
129
|
headers = {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
130
|
+
'Authorization' => authorization,
|
|
131
|
+
'Date' => date_rfc2616,
|
|
132
|
+
'x-ts-auth-method' => auth_method,
|
|
133
|
+
'x-ts-nonce' => nonce
|
|
147
134
|
}
|
|
148
135
|
|
|
149
|
-
unless user_agent.nil?
|
|
150
|
-
headers['User-Agent'] = user_agent
|
|
151
|
-
end
|
|
136
|
+
headers['User-Agent'] = user_agent unless user_agent.nil?
|
|
152
137
|
|
|
153
|
-
|
|
154
|
-
headers['Content-Type'] = content_type
|
|
155
|
-
end
|
|
138
|
+
headers['Content-Type'] = content_type unless content_type.empty?
|
|
156
139
|
|
|
157
140
|
headers
|
|
158
|
-
|
|
159
141
|
end
|
|
160
142
|
|
|
161
143
|
# Generic TeleSign REST API POST handler.
|
|
@@ -163,9 +145,7 @@ module Telesign
|
|
|
163
145
|
# * +resource+ - The partial resource URI to perform the request against, as a string.
|
|
164
146
|
# * +params+ - Body params to perform the POST request with, as a hash.
|
|
165
147
|
def post(resource, **params)
|
|
166
|
-
|
|
167
148
|
execute(Net::HTTP::Post, 'POST', resource, **params)
|
|
168
|
-
|
|
169
149
|
end
|
|
170
150
|
|
|
171
151
|
# Generic TeleSign REST API GET handler.
|
|
@@ -173,9 +153,7 @@ module Telesign
|
|
|
173
153
|
# * +resource+ - The partial resource URI to perform the request against, as a string.
|
|
174
154
|
# * +params+ - Body params to perform the GET request with, as a hash.
|
|
175
155
|
def get(resource, **params)
|
|
176
|
-
|
|
177
156
|
execute(Net::HTTP::Get, 'GET', resource, **params)
|
|
178
|
-
|
|
179
157
|
end
|
|
180
158
|
|
|
181
159
|
# Generic TeleSign REST API PUT handler.
|
|
@@ -183,9 +161,7 @@ module Telesign
|
|
|
183
161
|
# * +resource+ - The partial resource URI to perform the request against, as a string.
|
|
184
162
|
# * +params+ - Body params to perform the PUT request with, as a hash.
|
|
185
163
|
def put(resource, **params)
|
|
186
|
-
|
|
187
164
|
execute(Net::HTTP::Put, 'PUT', resource, **params)
|
|
188
|
-
|
|
189
165
|
end
|
|
190
166
|
|
|
191
167
|
# Generic TeleSign REST API DELETE handler.
|
|
@@ -193,9 +169,7 @@ module Telesign
|
|
|
193
169
|
# * +resource+ - The partial resource URI to perform the request against, as a string.
|
|
194
170
|
# * +params+ - Body params to perform the DELETE request with, as a hash.
|
|
195
171
|
def delete(resource, **params)
|
|
196
|
-
|
|
197
172
|
execute(Net::HTTP::Delete, 'DELETE', resource, **params)
|
|
198
|
-
|
|
199
173
|
end
|
|
200
174
|
|
|
201
175
|
# Generic Telesign REST API PATCH handler.
|
|
@@ -204,12 +178,11 @@ module Telesign
|
|
|
204
178
|
# * +auth_method+ - Method to auth.
|
|
205
179
|
# * +params+ - Body params to perform the PATCH request with, as a hash.
|
|
206
180
|
def patch(resource, auth_method: 'HMAC-SHA256', **params)
|
|
207
|
-
|
|
208
181
|
execute(Net::HTTP::Patch, 'PATCH', resource, auth_method: auth_method, **params)
|
|
209
|
-
|
|
210
182
|
end
|
|
211
183
|
|
|
212
184
|
private
|
|
185
|
+
|
|
213
186
|
# Generic TeleSign REST API request handler.
|
|
214
187
|
#
|
|
215
188
|
# * +method_function+ - The net/http request to perform the request.
|
|
@@ -217,13 +190,12 @@ module Telesign
|
|
|
217
190
|
# * +resource+ - The partial resource URI to perform the request against, as a string.
|
|
218
191
|
# * +params+ - Body params to perform the HTTP request with, as a hash.
|
|
219
192
|
def execute(method_function, method_name, resource, auth_method: 'HMAC-SHA256', **params)
|
|
220
|
-
|
|
221
193
|
resource_uri = URI.parse("#{@rest_endpoint}#{resource}")
|
|
222
194
|
|
|
223
195
|
encoded_fields = ''
|
|
224
196
|
if %w[POST PUT PATCH].include? method_name
|
|
225
197
|
request = method_function.new(resource_uri.request_uri)
|
|
226
|
-
if content_type ==
|
|
198
|
+
if content_type == 'application/x-www-form-urlencoded'
|
|
227
199
|
unless params.empty?
|
|
228
200
|
encoded_fields = URI.encode_www_form(params, Encoding::UTF_8)
|
|
229
201
|
request.set_form_data(params)
|
|
@@ -231,7 +203,7 @@ module Telesign
|
|
|
231
203
|
else
|
|
232
204
|
encoded_fields = params.to_json
|
|
233
205
|
request.body = encoded_fields
|
|
234
|
-
request.set_content_type(
|
|
206
|
+
request.set_content_type('application/json')
|
|
235
207
|
end
|
|
236
208
|
else
|
|
237
209
|
resource_uri.query = URI.encode_www_form(params, Encoding::UTF_8)
|
|
@@ -257,7 +229,7 @@ module Telesign
|
|
|
257
229
|
end
|
|
258
230
|
|
|
259
231
|
def content_type
|
|
260
|
-
|
|
232
|
+
'application/x-www-form-urlencoded'
|
|
261
233
|
end
|
|
262
234
|
end
|
|
263
235
|
end
|
data/lib/telesign/score.rb
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
require 'telesign/rest'
|
|
2
2
|
|
|
3
|
-
DETECT_HOST = 'https://detect.telesign.com'
|
|
4
|
-
INTELLIGENCE_RESOURCE = '/intelligence/phone'
|
|
3
|
+
DETECT_HOST = 'https://detect.telesign.com'.freeze
|
|
4
|
+
INTELLIGENCE_RESOURCE = '/intelligence/phone'.freeze
|
|
5
|
+
EMAIL_INTELLIGENCE_RESOURCE = '/intelligence/email'.freeze
|
|
5
6
|
|
|
6
7
|
module Telesign
|
|
7
|
-
|
|
8
8
|
# Obtain a risk recommendation for a phone number using TeleSign Intelligence Cloud API.
|
|
9
9
|
# Supports POST /intelligence/phone endpoint (Cloud migration).
|
|
10
10
|
# Sends phone number and parameters in request body as form-urlencoded.
|
|
11
11
|
# See https://developer.telesign.com/enterprise/reference/submitphonenumberforintelligencecloud for detailed API documentation.
|
|
12
12
|
class ScoreClient < RestClient
|
|
13
|
-
|
|
14
13
|
def initialize(customer_id, api_key, rest_endpoint: DETECT_HOST, **kwargs)
|
|
15
14
|
super(customer_id, api_key, rest_endpoint: rest_endpoint, **kwargs)
|
|
16
15
|
end
|
|
@@ -24,9 +23,30 @@ module Telesign
|
|
|
24
23
|
raise ArgumentError, 'account_lifecycle_event cannot be null or empty' if account_lifecycle_event.nil? || account_lifecycle_event.empty?
|
|
25
24
|
|
|
26
25
|
params[:phone_number] = phone_number
|
|
27
|
-
params[:account_lifecycle_event] = account_lifecycle_event
|
|
26
|
+
params[:account_lifecycle_event] = account_lifecycle_event
|
|
27
|
+
|
|
28
|
+
post(INTELLIGENCE_RESOURCE, **params)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def email_intelligence(email_address, account_lifecycle_event, **params)
|
|
32
|
+
# Obtain a risk recommendation for this email address, as well as
|
|
33
|
+
# other relevant information using Email Intelligence API.
|
|
34
|
+
#
|
|
35
|
+
# Required parameters:
|
|
36
|
+
# - email_address
|
|
37
|
+
# - account_lifecycle_event ("create", "sign-in", "transact", "update", "delete")
|
|
38
|
+
|
|
39
|
+
raise ArgumentError, 'email_address cannot be null or empty' if email_address.nil? || email_address.to_s.strip.empty?
|
|
40
|
+
|
|
41
|
+
raise ArgumentError, 'account_lifecycle_event cannot be null or empty' if account_lifecycle_event.nil? || account_lifecycle_event.to_s.strip.empty?
|
|
42
|
+
|
|
43
|
+
email_address = email_address.to_s.strip.downcase
|
|
44
|
+
account_lifecycle_event = account_lifecycle_event.to_s.strip.downcase
|
|
45
|
+
|
|
46
|
+
params[:email_address] = email_address
|
|
47
|
+
params[:account_lifecycle_event] = account_lifecycle_event
|
|
28
48
|
|
|
29
|
-
|
|
49
|
+
post(EMAIL_INTELLIGENCE_RESOURCE, **params)
|
|
30
50
|
end
|
|
31
51
|
end
|
|
32
52
|
end
|
data/lib/telesign/util.rb
CHANGED
|
@@ -3,10 +3,11 @@ require 'openssl'
|
|
|
3
3
|
require 'securerandom'
|
|
4
4
|
|
|
5
5
|
module Telesign
|
|
6
|
+
# Util/helper class.
|
|
6
7
|
class Util
|
|
7
|
-
|
|
8
|
-
def self.random_with_n_digits(
|
|
9
|
-
|
|
8
|
+
# Generate a random number with n digits.
|
|
9
|
+
def self.random_with_n_digits(length)
|
|
10
|
+
length.times.map { SecureRandom.random_number(10) }.join
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
# Verify that a callback was made by TeleSign and was not sent by a malicious client by verifying the signature.
|
|
@@ -15,22 +16,17 @@ module Telesign
|
|
|
15
16
|
# * +signature+ - the TeleSign Authorization header value supplied in the callback, as a string.
|
|
16
17
|
# * +json_str+ - the POST body text, that is, the JSON string sent by TeleSign describing the transaction status.
|
|
17
18
|
def verify_telesign_callback_signature(api_key, signature, json_str)
|
|
18
|
-
|
|
19
19
|
digest = OpenSSL::Digest.new('sha256')
|
|
20
20
|
key = Base64.decode64(api_key)
|
|
21
21
|
|
|
22
22
|
your_signature = Base64.encode64(OpenSSL::HMAC.digest(digest, key, json_str)).strip
|
|
23
23
|
|
|
24
|
-
unless signature.length == your_signature.length
|
|
25
|
-
return false
|
|
26
|
-
end
|
|
24
|
+
return false unless signature.length == your_signature.length
|
|
27
25
|
|
|
28
26
|
# avoid timing attack with constant time equality check
|
|
29
27
|
signatures_equal = true
|
|
30
28
|
signature.split('').zip(your_signature.split('')).each do |x, y|
|
|
31
|
-
unless x == y
|
|
32
|
-
signatures_equal = false
|
|
33
|
-
end
|
|
29
|
+
signatures_equal = false unless x == y
|
|
34
30
|
end
|
|
35
31
|
|
|
36
32
|
signatures_equal
|
data/lib/telesign/voice.rb
CHANGED
|
@@ -1,33 +1,29 @@
|
|
|
1
1
|
require 'telesign/rest'
|
|
2
2
|
|
|
3
|
-
VOICE_RESOURCE = '/v1/voice'
|
|
4
|
-
VOICE_STATUS_RESOURCE = '/v1/voice/%{reference_id}'
|
|
3
|
+
VOICE_RESOURCE = '/v1/voice'.freeze
|
|
4
|
+
VOICE_STATUS_RESOURCE = '/v1/voice/%{reference_id}'.freeze
|
|
5
5
|
|
|
6
6
|
module Telesign
|
|
7
|
-
|
|
8
7
|
# TeleSign's Voice API allows you to easily send voice messages. You can send alerts, reminders, and notifications,
|
|
9
8
|
# or you can send verification messages containing time-based, one-time passcodes (TOTP).
|
|
10
9
|
class VoiceClient < RestClient
|
|
11
|
-
|
|
12
10
|
# Send a voice call to the target phone_number.
|
|
13
11
|
#
|
|
14
12
|
# See https://developer.telesign.com/docs/voice-api for detailed API documentation.
|
|
15
13
|
def call(phone_number, message, message_type, **params)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
**params)
|
|
14
|
+
post(VOICE_RESOURCE,
|
|
15
|
+
phone_number: phone_number,
|
|
16
|
+
message: message,
|
|
17
|
+
message_type: message_type,
|
|
18
|
+
**params)
|
|
22
19
|
end
|
|
23
20
|
|
|
24
21
|
# Retrieves the current status of the voice call.
|
|
25
22
|
#
|
|
26
23
|
# See https://developer.telesign.com/docs/voice-api for detailed API documentation.
|
|
27
24
|
def status(reference_id, **params)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
**params)
|
|
25
|
+
get(format(VOICE_STATUS_RESOURCE, reference_id: reference_id),
|
|
26
|
+
**params)
|
|
31
27
|
end
|
|
32
28
|
end
|
|
33
29
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: telesign
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Telesign
|
|
@@ -10,41 +10,41 @@ cert_chain: []
|
|
|
10
10
|
date: 2017-05-25 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
|
-
name:
|
|
13
|
+
name: base64
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version:
|
|
19
|
-
- - "<"
|
|
20
|
-
- !ruby/object:Gem::Version
|
|
21
|
-
version: '5.0'
|
|
18
|
+
version: '0'
|
|
22
19
|
type: :runtime
|
|
23
20
|
prerelease: false
|
|
24
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
22
|
requirements:
|
|
26
23
|
- - ">="
|
|
27
24
|
- !ruby/object:Gem::Version
|
|
28
|
-
version:
|
|
29
|
-
- - "<"
|
|
30
|
-
- !ruby/object:Gem::Version
|
|
31
|
-
version: '5.0'
|
|
25
|
+
version: '0'
|
|
32
26
|
- !ruby/object:Gem::Dependency
|
|
33
|
-
name:
|
|
27
|
+
name: net-http-persistent
|
|
34
28
|
requirement: !ruby/object:Gem::Requirement
|
|
35
29
|
requirements:
|
|
36
30
|
- - ">="
|
|
37
31
|
- !ruby/object:Gem::Version
|
|
38
|
-
version:
|
|
32
|
+
version: 3.0.0
|
|
33
|
+
- - "<"
|
|
34
|
+
- !ruby/object:Gem::Version
|
|
35
|
+
version: '5.0'
|
|
39
36
|
type: :runtime
|
|
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:
|
|
42
|
+
version: 3.0.0
|
|
43
|
+
- - "<"
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '5.0'
|
|
46
46
|
- !ruby/object:Gem::Dependency
|
|
47
|
-
name:
|
|
47
|
+
name: codecov
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
49
49
|
requirements:
|
|
50
50
|
- - ">="
|
|
@@ -58,21 +58,21 @@ dependencies:
|
|
|
58
58
|
- !ruby/object:Gem::Version
|
|
59
59
|
version: '0'
|
|
60
60
|
- !ruby/object:Gem::Dependency
|
|
61
|
-
name:
|
|
61
|
+
name: mocha
|
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
|
63
63
|
requirements:
|
|
64
64
|
- - ">="
|
|
65
65
|
- !ruby/object:Gem::Version
|
|
66
|
-
version:
|
|
66
|
+
version: 2.1.0
|
|
67
67
|
type: :development
|
|
68
68
|
prerelease: false
|
|
69
69
|
version_requirements: !ruby/object:Gem::Requirement
|
|
70
70
|
requirements:
|
|
71
71
|
- - ">="
|
|
72
72
|
- !ruby/object:Gem::Version
|
|
73
|
-
version:
|
|
73
|
+
version: 2.1.0
|
|
74
74
|
- !ruby/object:Gem::Dependency
|
|
75
|
-
name:
|
|
75
|
+
name: rake
|
|
76
76
|
requirement: !ruby/object:Gem::Requirement
|
|
77
77
|
requirements:
|
|
78
78
|
- - ">="
|
|
@@ -86,7 +86,7 @@ dependencies:
|
|
|
86
86
|
- !ruby/object:Gem::Version
|
|
87
87
|
version: '0'
|
|
88
88
|
- !ruby/object:Gem::Dependency
|
|
89
|
-
name:
|
|
89
|
+
name: simplecov
|
|
90
90
|
requirement: !ruby/object:Gem::Requirement
|
|
91
91
|
requirements:
|
|
92
92
|
- - ">="
|
|
@@ -100,7 +100,7 @@ dependencies:
|
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
101
|
version: '0'
|
|
102
102
|
- !ruby/object:Gem::Dependency
|
|
103
|
-
name:
|
|
103
|
+
name: test-unit
|
|
104
104
|
requirement: !ruby/object:Gem::Requirement
|
|
105
105
|
requirements:
|
|
106
106
|
- - ">="
|
|
@@ -114,7 +114,7 @@ dependencies:
|
|
|
114
114
|
- !ruby/object:Gem::Version
|
|
115
115
|
version: '0'
|
|
116
116
|
- !ruby/object:Gem::Dependency
|
|
117
|
-
name:
|
|
117
|
+
name: uuid
|
|
118
118
|
requirement: !ruby/object:Gem::Requirement
|
|
119
119
|
requirements:
|
|
120
120
|
- - ">="
|
|
@@ -128,19 +128,19 @@ dependencies:
|
|
|
128
128
|
- !ruby/object:Gem::Version
|
|
129
129
|
version: '0'
|
|
130
130
|
- !ruby/object:Gem::Dependency
|
|
131
|
-
name:
|
|
131
|
+
name: webmock
|
|
132
132
|
requirement: !ruby/object:Gem::Requirement
|
|
133
133
|
requirements:
|
|
134
134
|
- - ">="
|
|
135
135
|
- !ruby/object:Gem::Version
|
|
136
|
-
version:
|
|
136
|
+
version: 3.18.0
|
|
137
137
|
type: :development
|
|
138
138
|
prerelease: false
|
|
139
139
|
version_requirements: !ruby/object:Gem::Requirement
|
|
140
140
|
requirements:
|
|
141
141
|
- - ">="
|
|
142
142
|
- !ruby/object:Gem::Version
|
|
143
|
-
version:
|
|
143
|
+
version: 3.18.0
|
|
144
144
|
description: Telesign Ruby SDK
|
|
145
145
|
email: support@telesign.com
|
|
146
146
|
executables: []
|
|
@@ -166,14 +166,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
166
166
|
requirements:
|
|
167
167
|
- - ">="
|
|
168
168
|
- !ruby/object:Gem::Version
|
|
169
|
-
version: '0'
|
|
169
|
+
version: '2.0'
|
|
170
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
171
|
requirements:
|
|
172
172
|
- - ">="
|
|
173
173
|
- !ruby/object:Gem::Version
|
|
174
174
|
version: '0'
|
|
175
175
|
requirements: []
|
|
176
|
-
rubygems_version:
|
|
176
|
+
rubygems_version: 3.6.2
|
|
177
177
|
specification_version: 4
|
|
178
178
|
summary: Telesign Ruby SDK
|
|
179
179
|
test_files: []
|