ringcentral-sdk 0.9.7 → 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0def40f14858640a19c34e45ff4ff317dfaf49ad9982973caa3d11c837352b94
4
- data.tar.gz: 838af02960f7b0f797d9d4c84df5f386d8c68f635e69d2256fe2e45147e4d48b
3
+ metadata.gz: 0c82aa5b359e0d18f0096e856d81cebb7c00990208cc210a217d49d470ee19eb
4
+ data.tar.gz: 5a4f3973076393c86fa95ea47aa7b467c0b01abd3c46fcd819a5c976ab625717
5
5
  SHA512:
6
- metadata.gz: 649477f3d68de34a1211b6ea467bcf220fa1e8d17931fa96eb9f752dd0314878a4d3ba5843a6039644441d1abcea4f2c8616ab646c7a0e713c639e657a8ca1e2
7
- data.tar.gz: 5abfbfb09b56b5f8f0dc913e39a56d36bcc48d4cd3affdaeab64428049b2918ae4de79f1f6e0ebf4f01a53a012ff8c03247dbb29e67b82cb4bac70da19ae3742
6
+ metadata.gz: 1cd78622b101fbf1ef52b717af4ea587fdf98517613d9de858f432c3954e89c4c8393a16f67a43bfa29fe938d2711970200133ad9fc7362307b214d0a807f094
7
+ data.tar.gz: 9a98212a1550ee2cd269d8b935fb25115f31f9ece0609498e6a5fa2efd701107da6e3ed58a48fb266e118934e85b8ded88860529f93c13142ea2d87cb315e94b
data/README.md CHANGED
@@ -41,7 +41,7 @@ https://developer.ringcentral.com/api-docs/latest/index.html
41
41
  require 'ringcentral'
42
42
 
43
43
  rc = RingCentral.new('clientID', 'clientSecret', 'serverURL')
44
- rc.authorize(username: 'username', extension: 'extension', password: 'password')
44
+ rc.authorize(jwt: 'jwt-token')
45
45
 
46
46
  # get
47
47
  r = rc.get('/restapi/v1.0/account/~/extension/~')
@@ -82,8 +82,7 @@ If you want the SDK to do auto refresh please `rc.auto_refresh = true` before au
82
82
  ### Load preexisting token
83
83
 
84
84
  Let's say you already have a token. Then you can load it like this: `rc.token = your_token_object`.
85
-
86
- The benifits of loading a preexisting token is you don't need to go through any authorization flow.
85
+ The benefit of loading a preexisting token is you don't need to go through any authorization flow.
87
86
 
88
87
  If what you have is a JSON string instead of a Ruby object, you need to convert it first: `JSON.parse(your_token_string)`.
89
88
 
@@ -99,7 +98,7 @@ rc.token = { access_token: 'the token string' }
99
98
  ```ruby
100
99
  r = rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: {
101
100
  to: [{phoneNumber: ENV['RINGCENTRAL_RECEIVER']}],
102
- from: {phoneNumber: ENV['RINGCENTRAL_USERNAME']},
101
+ from: {phoneNumber: ENV['RINGCENTRAL_SENDER']},
103
102
  text: 'Hello world'
104
103
  })
105
104
  ```
@@ -124,7 +123,7 @@ payload: { to: [{ phoneNumber: ENV['RINGCENTRAL_RECEIVER'] }] },
124
123
  r = rc.post('/restapi/v1.0/account/~/extension/~/sms',
125
124
  payload: {
126
125
  to: [{ phoneNumber: ENV['RINGCENTRAL_RECEIVER'] }],
127
- from: { phoneNumber: ENV['RINGCENTRAL_USERNAME'] },
126
+ from: { phoneNumber: ENV['RINGCENTRAL_SENDER'] },
128
127
  text: 'hello world'
129
128
  },
130
129
  files: [
@@ -154,7 +153,7 @@ createSubscription(lambda { |message|
154
153
  ```
155
154
 
156
155
 
157
- For more sample code, please refer to the [test cases](/spec).
156
+ For more sample codes, please refer to the [test cases](/spec).
158
157
 
159
158
 
160
159
  ## How to test
@@ -163,17 +162,9 @@ For more sample code, please refer to the [test cases](/spec).
163
162
  bundle install --path vendor/bundle
164
163
  ```
165
164
 
166
- Create `.env` file with the following content:
165
+ Rename `.env.sample` to `.env`.
167
166
 
168
- ```
169
- RINGCENTRAL_SERVER_URL=https://platform.devtest.ringcentral.com
170
- RINGCENTRAL_CLIENT_ID=
171
- RINGCENTRAL_CLIENT_SECRET=
172
- RINGCENTRAL_USERNAME=
173
- RINGCENTRAL_EXTENSION=
174
- RINGCENTRAL_PASSWORD=
175
- RINGCENTRAL_RECEIVER=
176
- ```
167
+ Edit `.env` file to specify credentials.
177
168
 
178
169
  `RINGCENTRAL_RECEIVER` is a phone number to receive SMS, Fax..etc.
179
170
 
@@ -183,8 +174,3 @@ Run `bundle exec rspec`
183
174
  ## License
184
175
 
185
176
  MIT
186
-
187
-
188
- ## Todo
189
-
190
- - Batch requests
data/lib/ringcentral.rb CHANGED
@@ -16,13 +16,14 @@ class RingCentral
16
16
  end
17
17
 
18
18
  attr_reader :client_id, :client_secret, :server, :token
19
- attr_accessor :auto_refresh
19
+ attr_accessor :auto_refresh, :debug_mode
20
20
 
21
- def initialize(client_id, client_secret, server)
21
+ def initialize(client_id, client_secret, server, debug_mode = false)
22
22
  @client_id = client_id
23
23
  @client_secret = client_secret
24
24
  @server = server
25
25
  @auto_refresh = false
26
+ @debug_mode = debug_mode
26
27
  @token = nil
27
28
  @timer = nil
28
29
  @faraday = Faraday.new(url: server, request: { params_encoder: Faraday::FlatParamsEncoder }) do |faraday|
@@ -91,31 +92,36 @@ class RingCentral
91
92
  self.post('/restapi/oauth/revoke', payload: payload)
92
93
  end
93
94
 
94
- def authorize_uri(redirect_uri, state = '', challenge = nil, challenge_method = 'S256')
95
+ def authorize_uri(redirect_uri, hash = {})
96
+ hash[:response_type] = 'code'
97
+ hash[:redirect_uri] = redirect_uri
98
+ hash[:client_id] = @client_id
95
99
  uri = Addressable::URI.parse(@server) + '/restapi/oauth/authorize'
96
- uri.query_values = {
97
- response_type: 'code',
98
- state: state,
99
- redirect_uri: redirect_uri,
100
- client_id: @client_id
101
- }
102
- if challenge != nil
103
- uri.query_values["code_challenge"] = challenge
104
- uri.query_values["code_challenge_method"] = challenge_method
105
- end
100
+ uri.query_values = hash
106
101
  uri.to_s
107
102
  end
108
103
 
109
104
  def get(endpoint, params = {})
110
- @faraday.get do |req|
105
+ r = @faraday.get do |req|
111
106
  req.url endpoint
112
107
  req.params = params
113
108
  req.headers = headers
114
109
  end
110
+ if @debug_mode
111
+ puts r.status, r.body
112
+ end
113
+ if r.status >= 400
114
+ raise "HTTP status #{r.status}:
115
+
116
+ headers: #{r.headers}
117
+
118
+ body: #{r.body}"
119
+ end
120
+ return r
115
121
  end
116
122
 
117
123
  def post(endpoint, payload: nil, params: {}, files: nil)
118
- @faraday.post do |req|
124
+ r = @faraday.post do |req|
119
125
  req.url endpoint
120
126
  req.params = params
121
127
  if files != nil && files.size > 0 # send fax or MMS
@@ -133,32 +139,76 @@ class RingCentral
133
139
  req.body = payload
134
140
  end
135
141
  end
142
+ if @debug_mode
143
+ puts r.status, r.body
144
+ end
145
+ if r.status >= 400
146
+ raise "HTTP status #{r.status}:
147
+
148
+ headers: #{r.headers}
149
+
150
+ body: #{r.body}"
151
+ end
152
+ return r
136
153
  end
137
154
 
138
155
  def put(endpoint, payload: nil, params: {}, files: nil)
139
- @faraday.put do |req|
156
+ r = @faraday.put do |req|
140
157
  req.url endpoint
141
158
  req.params = params
142
159
  req.headers = headers.merge({ 'Content-Type': 'application/json' })
143
160
  req.body = payload.to_json
144
161
  end
162
+ if @debug_mode
163
+ puts r.status, r.body
164
+ end
165
+ if r.status >= 400
166
+ raise "HTTP status #{r.status}:
167
+
168
+ headers: #{r.headers}
169
+
170
+ body: #{r.body}"
171
+ end
172
+ return r
145
173
  end
146
174
 
147
175
  def patch(endpoint, payload: nil, params: {}, files: nil)
148
- @faraday.patch do |req|
176
+ r = @faraday.patch do |req|
149
177
  req.url endpoint
150
178
  req.params = params
151
179
  req.headers = headers.merge({ 'Content-Type': 'application/json' })
152
180
  req.body = payload.to_json
153
181
  end
182
+ if @debug_mode
183
+ puts r.status, r.body
184
+ end
185
+ if r.status >= 400
186
+ raise "HTTP status #{r.status}:
187
+
188
+ headers: #{r.headers}
189
+
190
+ body: #{r.body}"
191
+ end
192
+ return r
154
193
  end
155
194
 
156
195
  def delete(endpoint, params = {})
157
- @faraday.delete do |req|
196
+ r = @faraday.delete do |req|
158
197
  req.url endpoint
159
198
  req.params = params
160
199
  req.headers = headers
161
200
  end
201
+ if @debug_mode
202
+ puts r.status, r.body
203
+ end
204
+ if r.status >= 400
205
+ raise "HTTP status #{r.status}:
206
+
207
+ headers: #{r.headers}
208
+
209
+ body: #{r.body}"
210
+ end
211
+ return r
162
212
  end
163
213
 
164
214
  private
@@ -175,8 +225,7 @@ class RingCentral
175
225
  user_agent_header = "ringcentral/ringcentral-ruby Ruby #{RUBY_VERSION} #{RUBY_PLATFORM}"
176
226
  {
177
227
  'Authorization': autorization_header,
178
- 'RC-User-Agent': user_agent_header,
179
- 'User-Agent': user_agent_header,
228
+ 'X-User-Agent': user_agent_header,
180
229
  }
181
230
  end
182
231
  end
data/lib/subscription.rb CHANGED
@@ -2,7 +2,6 @@ require 'pubnub'
2
2
  require 'concurrent'
3
3
  require 'openssl'
4
4
  require 'base64'
5
- require 'securerandom'
6
5
 
7
6
  class PubNub
8
7
  attr_accessor :events
@@ -39,7 +38,7 @@ class PubNub
39
38
  @timer = nil
40
39
  end
41
40
  if value != nil
42
- @timer = Concurrent::TimerTask.new(execution_interval: value['expiresIn'] - 120, timeout_interval: 60) do
41
+ @timer = Concurrent::TimerTask.new(execution_interval: value['expiresIn'] - 120) do
43
42
  self.refresh
44
43
  end
45
44
  @timer.execute
@@ -49,7 +48,7 @@ class PubNub
49
48
  def subscribe
50
49
  r = @rc.post('/restapi/v1.0/subscription', payload: request_body)
51
50
  self.subscription = r.body
52
- @pubnub = Pubnub.new(subscribe_key: @subscription['deliveryMode']['subscriberKey'], uuid: SecureRandom.uuid)
51
+ @pubnub = Pubnub.new(subscribe_key: @subscription['deliveryMode']['subscriberKey'], user_id: @rc.token['owner_id'])
53
52
  @pubnub.add_listener(name: 'default', callback: @callback)
54
53
  @pubnub.subscribe(channels: @subscription['deliveryMode']['address'])
55
54
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = 'ringcentral-sdk'
3
- gem.version = '0.9.7'
3
+ gem.version = '0.9.9'
4
4
  gem.authors = ['Tyler Liu']
5
5
  gem.email = ['tyler.liu@ringcentral.com']
6
6
  gem.description = 'Ruby SDK for you to access RingCentral platform API.'
@@ -13,9 +13,9 @@ Gem::Specification.new do |gem|
13
13
  gem.files += Dir['lib/**/*.rb']
14
14
  gem.test_files = Dir['spec/**/*.rb']
15
15
 
16
- gem.add_dependency('addressable', '~> 2.8', '>= 2.8.0')
17
- gem.add_dependency('concurrent-ruby', '~> 1.1', '>= 1.1.10')
18
- gem.add_dependency('pubnub', '~> 5.0', '>= 5.0.0')
19
- gem.add_dependency('faraday', '~> 2.3', '>= 2.3.0')
16
+ gem.add_dependency('addressable', '~> 2.8', '>= 2.8.4')
17
+ gem.add_dependency('concurrent-ruby', '~> 1.2', '>= 1.2.2')
18
+ gem.add_dependency('pubnub', '~> 5.2', '>= 5.2.2')
19
+ gem.add_dependency('faraday', '~> 2.7', '>= 2.7.4')
20
20
  gem.add_dependency('faraday-multipart', '~> 1.0', '>= 1.0.4')
21
21
  end
data/spec/fax_spec.rb CHANGED
@@ -6,7 +6,7 @@ RSpec.describe 'Fax' do
6
6
  it 'should send a fax' do
7
7
  Dotenv.load
8
8
  rc = RingCentral.new(ENV['RINGCENTRAL_CLIENT_ID'], ENV['RINGCENTRAL_CLIENT_SECRET'], ENV['RINGCENTRAL_SERVER_URL'])
9
- rc.authorize(username: ENV['RINGCENTRAL_USERNAME'], extension: ENV['RINGCENTRAL_EXTENSION'], password: ENV['RINGCENTRAL_PASSWORD'])
9
+ rc.authorize(jwt: ENV['RINGCENTRAL_JWT_TOKEN'])
10
10
  r = rc.post('/restapi/v1.0/account/~/extension/~/fax',
11
11
  payload: { to: [{ phoneNumber: ENV['RINGCENTRAL_RECEIVER'] }] },
12
12
  files: [
@@ -17,6 +17,8 @@ RSpec.describe 'Fax' do
17
17
  expect(r).not_to be_nil
18
18
  message = r.body
19
19
  expect('Fax').to eq(message['type'])
20
+
21
+ rc.revoke()
20
22
  end
21
23
  end
22
24
  end
data/spec/mms_spec.rb CHANGED
@@ -6,12 +6,12 @@ RSpec.describe 'MMS' do
6
6
  it 'should send an MMS' do
7
7
  Dotenv.load
8
8
  rc = RingCentral.new(ENV['RINGCENTRAL_CLIENT_ID'], ENV['RINGCENTRAL_CLIENT_SECRET'], ENV['RINGCENTRAL_SERVER_URL'])
9
- rc.authorize(username: ENV['RINGCENTRAL_USERNAME'], extension: ENV['RINGCENTRAL_EXTENSION'], password: ENV['RINGCENTRAL_PASSWORD'])
9
+ rc.authorize(jwt: ENV['RINGCENTRAL_JWT_TOKEN'])
10
10
 
11
11
  r = rc.post('/restapi/v1.0/account/~/extension/~/sms',
12
12
  payload: {
13
13
  to: [{ phoneNumber: ENV['RINGCENTRAL_RECEIVER'] }],
14
- from: { phoneNumber: ENV['RINGCENTRAL_USERNAME'] },
14
+ from: { phoneNumber: ENV['RINGCENTRAL_SENDER'] },
15
15
  text: 'hello world'
16
16
  },
17
17
  files: [
@@ -21,6 +21,8 @@ RSpec.describe 'MMS' do
21
21
  expect(r).not_to be_nil
22
22
  message = r.body
23
23
  expect('SMS').to eq(message['type'])
24
+
25
+ rc.revoke()
24
26
  end
25
27
  end
26
28
  end
@@ -6,7 +6,7 @@ RSpec.describe 'query params' do
6
6
  it 'contain single query param' do
7
7
  Dotenv.load
8
8
  rc = RingCentral.new(ENV['RINGCENTRAL_CLIENT_ID'], ENV['RINGCENTRAL_CLIENT_SECRET'], ENV['RINGCENTRAL_SERVER_URL'])
9
- rc.authorize(username: ENV['RINGCENTRAL_USERNAME'], extension: ENV['RINGCENTRAL_EXTENSION'], password: ENV['RINGCENTRAL_PASSWORD'])
9
+ rc.authorize(jwt: ENV['RINGCENTRAL_JWT_TOKEN'])
10
10
  r = rc.get('/restapi/v1.0/account/~/extension/~/address-book/contact', { phoneNumber: '666' })
11
11
  expect(r).not_to be_nil
12
12
  message = r.body
@@ -16,6 +16,7 @@ RSpec.describe 'query params' do
16
16
  expect(r).not_to be_nil
17
17
  message = r.body
18
18
  expect(message['uri']).to include('phoneNumber=666&phoneNumber=888')
19
+
19
20
  rc.revoke()
20
21
  end
21
22
  end
@@ -17,16 +17,16 @@ RSpec.describe 'RingCentral' do
17
17
 
18
18
  it 'test_authorize_uri' do
19
19
  rc = RingCentral.new('client_id', 'client_secret', RingCentral.SANDBOX_SERVER)
20
- expect(RingCentral.SANDBOX_SERVER + '/restapi/oauth/authorize?client_id=client_id&redirect_uri=https%3A%2F%2Fexample.com&response_type=code&state=mystate').to eq(rc.authorize_uri('https://example.com', 'mystate'))
20
+ expect(RingCentral.SANDBOX_SERVER + '/restapi/oauth/authorize?client_id=client_id&redirect_uri=https%3A%2F%2Fexample.com&response_type=code&state=mystate').to eq(rc.authorize_uri('https://example.com', {state: 'mystate'}))
21
21
  end
22
22
 
23
- it 'test_password_flow' do
23
+ it 'test_jwt_flow' do
24
24
  Dotenv.load
25
25
  rc = RingCentral.new(ENV['RINGCENTRAL_CLIENT_ID'], ENV['RINGCENTRAL_CLIENT_SECRET'], ENV['RINGCENTRAL_SERVER_URL'])
26
26
  expect(rc.token).to be_nil
27
27
 
28
28
  # create token
29
- rc.authorize(username: ENV['RINGCENTRAL_USERNAME'], extension: ENV['RINGCENTRAL_EXTENSION'], password: ENV['RINGCENTRAL_PASSWORD'])
29
+ rc.authorize(jwt: ENV['RINGCENTRAL_JWT_TOKEN'])
30
30
  expect(rc.token).not_to be_nil
31
31
 
32
32
  # refresh token
@@ -41,7 +41,7 @@ RSpec.describe 'RingCentral' do
41
41
  it 'test_http_methods' do
42
42
  Dotenv.load
43
43
  rc = RingCentral.new(ENV['RINGCENTRAL_CLIENT_ID'], ENV['RINGCENTRAL_CLIENT_SECRET'], ENV['RINGCENTRAL_SERVER_URL'])
44
- rc.authorize(username: ENV['RINGCENTRAL_USERNAME'], extension: ENV['RINGCENTRAL_EXTENSION'], password: ENV['RINGCENTRAL_PASSWORD'])
44
+ rc.authorize(jwt: ENV['RINGCENTRAL_JWT_TOKEN'])
45
45
 
46
46
  # get
47
47
  r = rc.get('/restapi/v1.0/account/~/extension/~')
@@ -51,7 +51,7 @@ RSpec.describe 'RingCentral' do
51
51
  # post
52
52
  r = rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: {
53
53
  to: [{phoneNumber: ENV['RINGCENTRAL_RECEIVER']}],
54
- from: {phoneNumber: ENV['RINGCENTRAL_USERNAME']},
54
+ from: {phoneNumber: ENV['RINGCENTRAL_SENDER']},
55
55
  text: 'Hello world'
56
56
  })
57
57
  expect(r).not_to be_nil
@@ -78,6 +78,8 @@ RSpec.describe 'RingCentral' do
78
78
  expect(r).not_to be_nil
79
79
  message = r.body
80
80
  expect('Deleted').to eq(message['availability'])
81
+
82
+ rc.revoke()
81
83
  end
82
84
  end
83
85
  end
@@ -5,7 +5,7 @@ require 'rspec'
5
5
 
6
6
  Dotenv.load
7
7
  $rc = RingCentral.new(ENV['RINGCENTRAL_CLIENT_ID'], ENV['RINGCENTRAL_CLIENT_SECRET'], ENV['RINGCENTRAL_SERVER_URL'])
8
- $rc.authorize(username: ENV['RINGCENTRAL_USERNAME'], extension: ENV['RINGCENTRAL_EXTENSION'], password: ENV['RINGCENTRAL_PASSWORD'])
8
+
9
9
 
10
10
  def createSubscription(callback)
11
11
  events = [
@@ -21,6 +21,7 @@ end
21
21
  RSpec.describe 'Subscription' do
22
22
  describe 'subscription' do
23
23
  it 'receives message notification' do
24
+ $rc.authorize(jwt: ENV['RINGCENTRAL_JWT_TOKEN'])
24
25
  count = 0
25
26
  createSubscription(lambda { |message|
26
27
  count += 1
@@ -28,15 +29,17 @@ RSpec.describe 'Subscription' do
28
29
 
29
30
  $rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: {
30
31
  to: [{phoneNumber: ENV['RINGCENTRAL_RECEIVER']}],
31
- from: {phoneNumber: ENV['RINGCENTRAL_USERNAME']},
32
+ from: {phoneNumber: ENV['RINGCENTRAL_SENDER']},
32
33
  text: 'Hello world'
33
34
  })
34
35
  sleep(20)
35
36
 
36
37
  expect(count).to be > 0
38
+ $rc.revoke()
37
39
  end
38
40
 
39
41
  it 'refresh' do
42
+ $rc.authorize(jwt: ENV['RINGCENTRAL_JWT_TOKEN'])
40
43
  count = 0
41
44
  subscription = createSubscription(lambda { |message|
42
45
  count += 1
@@ -46,15 +49,17 @@ RSpec.describe 'Subscription' do
46
49
 
47
50
  $rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: {
48
51
  to: [{phoneNumber: ENV['RINGCENTRAL_RECEIVER']}],
49
- from: {phoneNumber: ENV['RINGCENTRAL_USERNAME']},
52
+ from: {phoneNumber: ENV['RINGCENTRAL_SENDER']},
50
53
  text: 'Hello world'
51
54
  })
52
55
  sleep(20)
53
56
 
54
57
  expect(count).to be > 0
58
+ $rc.revoke()
55
59
  end
56
60
 
57
61
  it 'revoke' do
62
+ $rc.authorize(jwt: ENV['RINGCENTRAL_JWT_TOKEN'])
58
63
  count = 0
59
64
  subscription = createSubscription(lambda { |message|
60
65
  count += 1
@@ -64,12 +69,13 @@ RSpec.describe 'Subscription' do
64
69
 
65
70
  $rc.post('/restapi/v1.0/account/~/extension/~/sms', payload: {
66
71
  to: [{phoneNumber: ENV['RINGCENTRAL_RECEIVER']}],
67
- from: {phoneNumber: ENV['RINGCENTRAL_USERNAME']},
72
+ from: {phoneNumber: ENV['RINGCENTRAL_SENDER']},
68
73
  text: 'Hello world'
69
74
  })
70
75
  sleep(20)
71
76
 
72
77
  expect(count).to eq(0)
78
+ $rc.revoke()
73
79
  end
74
80
  end
75
81
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ringcentral-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.7
4
+ version: 0.9.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Liu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-02 00:00:00.000000000 Z
11
+ date: 2023-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '2.8'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 2.8.0
22
+ version: 2.8.4
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,67 +29,67 @@ dependencies:
29
29
  version: '2.8'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 2.8.0
32
+ version: 2.8.4
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: concurrent-ruby
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.1'
39
+ version: '1.2'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 1.1.10
42
+ version: 1.2.2
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '1.1'
49
+ version: '1.2'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 1.1.10
52
+ version: 1.2.2
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: pubnub
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '5.0'
59
+ version: '5.2'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 5.0.0
62
+ version: 5.2.2
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '5.0'
69
+ version: '5.2'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 5.0.0
72
+ version: 5.2.2
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: faraday
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '2.3'
79
+ version: '2.7'
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 2.3.0
82
+ version: 2.7.4
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '2.3'
89
+ version: '2.7'
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 2.3.0
92
+ version: 2.7.4
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: faraday-multipart
95
95
  requirement: !ruby/object:Gem::Requirement
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  requirements: []
148
- rubygems_version: 3.2.3
148
+ rubygems_version: 3.4.10
149
149
  signing_key:
150
150
  specification_version: 4
151
151
  summary: RingCentral Ruby SDK.