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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3463757a8a57c39858bf85b288758923d6e3a6180e8e2ca426c599bb305dbf9b
4
- data.tar.gz: c65156570396e12f271602b11bd670ce01fab73401c5bcc8fb2f01e5e6031647
3
+ metadata.gz: bbde29cc0a4c91e2661d802092cbaa9ecd0e83e90884080159d909aee719f2af
4
+ data.tar.gz: 56451c8e2c34a5f0df35f6598a7ed0ef15e323fa7fd4158649648f03fd201aab
5
5
  SHA512:
6
- metadata.gz: e804d6144ab16fa2bf88bddafbc12f1ce435ad6d1ffcbf4107dd83f21e239ff8f6f5f142dda6b260d11cb1bd5a591dffa1e49470e30dcc552c0ca1bbdc1f1ce8
7
- data.tar.gz: b525752a20aa650a0ed7bb05543aac795bd0b23e2d8bae75de49a0524f1f4f846bef8934d48b552aebad1954e396483b9a188d171af20c09311ea26b19c9e041
6
+ metadata.gz: a6aa7c387c3e55deae57de06f8ca7bfa69cc47c9b3d968899d12a670ceb39b19b990e48e8ede2394c72821d1ffc1f8959fd58131afab6644b29347d027c6a072
7
+ data.tar.gz: 2c0e3ad2a77e894c455b9f8d8ad4612a1b9bd27eef8ff44527832960cc47b024043a8ea37bf8556e5362c1cd02fe94186d010ff902511b47a728aebc6744cb7b
@@ -1,3 +1,3 @@
1
1
  module Telesign
2
- SDK_VERSION = '4.0.2'
3
- end
2
+ SDK_VERSION = '4.1.1'.freeze
3
+ end
@@ -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
- self.post(MESSAGING_RESOURCE,
18
- phone_number: phone_number,
19
- message: message,
20
- message_type: message_type,
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
- self.get(MESSAGING_STATUS_RESOURCE % {:reference_id => reference_id},
30
- **params)
25
+ get(format(MESSAGING_STATUS_RESOURCE, reference_id: reference_id),
26
+ **params)
31
27
  end
32
28
  end
33
29
  end
@@ -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
- self.post(PHONEID_RESOURCE % {:phone_number => phone_number},
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
- "application/json"
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.kind_of? Net::HTTPSuccess
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 (source != 'ruby_telesign' && !sdk_version_dependency.nil?)
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
- unless timeout.nil?
70
- @http.open_timeout = timeout
71
- @http.read_timeout = timeout
72
- end
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 date_rfc2616.nil?
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 = (%w[POST PUT PATCH].include? method_name) ? 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? and !encoded_fields.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
- 'Authorization'=>authorization,
144
- 'Date'=>date_rfc2616,
145
- 'x-ts-auth-method'=>auth_method,
146
- 'x-ts-nonce'=>nonce
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
- if !content_type.empty?
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 == "application/x-www-form-urlencoded"
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("application/json")
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
- "application/x-www-form-urlencoded"
232
+ 'application/x-www-form-urlencoded'
261
233
  end
262
234
  end
263
235
  end
@@ -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
- self.post(INTELLIGENCE_RESOURCE, **params)
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(n)
9
- n.times.map { SecureRandom.random_number(10) }.join
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
@@ -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
- self.post(VOICE_RESOURCE,
18
- phone_number: phone_number,
19
- message: message,
20
- message_type: message_type,
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
- self.get(VOICE_STATUS_RESOURCE % {:reference_id => reference_id},
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.0.2
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: net-http-persistent
13
+ name: base64
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 3.0.0
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: 3.0.0
29
- - - "<"
30
- - !ruby/object:Gem::Version
31
- version: '5.0'
25
+ version: '0'
32
26
  - !ruby/object:Gem::Dependency
33
- name: base64
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: '0'
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: '0'
42
+ version: 3.0.0
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '5.0'
46
46
  - !ruby/object:Gem::Dependency
47
- name: rake
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: uuid
61
+ name: mocha
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - ">="
65
65
  - !ruby/object:Gem::Version
66
- version: '0'
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: '0'
73
+ version: 2.1.0
74
74
  - !ruby/object:Gem::Dependency
75
- name: mocha
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: webmock
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: codecov
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: simplecov
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: test-unit
131
+ name: webmock
132
132
  requirement: !ruby/object:Gem::Requirement
133
133
  requirements:
134
134
  - - ">="
135
135
  - !ruby/object:Gem::Version
136
- version: '0'
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: '0'
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: 4.0.6
176
+ rubygems_version: 3.6.2
177
177
  specification_version: 4
178
178
  summary: Telesign Ruby SDK
179
179
  test_files: []