twilio-ruby 5.0.0.rc22 → 5.0.0.rc23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +10 -0
- data/lib/twilio-ruby/jwt/client_capability.rb +17 -8
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +15 -3
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +15 -3
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +15 -3
- data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +10 -2
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +15 -3
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +15 -3
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +15 -3
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +15 -3
- data/lib/twilio-ruby/rest/fax/v1/fax.rb +61 -28
- data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +11 -6
- data/lib/twilio-ruby/rest/notify/v1/service.rb +28 -3
- data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +8 -1
- data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +1 -4
- data/lib/twilio-ruby/twiml/voice_response.rb +5 -20
- data/lib/twilio-ruby/version.rb +1 -1
- data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +1 -0
- data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +1 -0
- data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +1 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +2 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +2 -0
- data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +2 -0
- data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +4 -0
- data/spec/integration/notify/v1/service/notification_spec.rb +2 -1
- data/spec/integration/notify/v1/service/user/user_binding_spec.rb +34 -0
- data/spec/integration/notify/v1/service_spec.rb +8 -0
- data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +2 -3
- data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +57 -41
- data/spec/integration/taskrouter/v1/workspace_spec.rb +38 -30
- data/spec/jwt/client_capability_spec.rb +9 -9
- data/spec/twiml/voice_response_spec.rb +5 -5
- metadata +2 -2
@@ -28,22 +28,24 @@ describe 'Workspace' do
|
|
28
28
|
%q[
|
29
29
|
{
|
30
30
|
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
31
|
-
"date_created": "
|
32
|
-
"date_updated": "
|
31
|
+
"date_created": "2016-08-01T22:10:40Z",
|
32
|
+
"date_updated": "2016-08-01T22:10:40Z",
|
33
33
|
"default_activity_name": "Offline",
|
34
34
|
"default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
35
35
|
"event_callback_url": "",
|
36
|
-
"events_filter":
|
37
|
-
"friendly_name": "
|
36
|
+
"events_filter": null,
|
37
|
+
"friendly_name": "new",
|
38
38
|
"links": {
|
39
39
|
"activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities",
|
40
40
|
"statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics",
|
41
41
|
"task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues",
|
42
42
|
"tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks",
|
43
43
|
"workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
|
44
|
-
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows"
|
44
|
+
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
|
45
|
+
"task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
|
46
|
+
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
|
45
47
|
},
|
46
|
-
"multi_task_enabled":
|
48
|
+
"multi_task_enabled": false,
|
47
49
|
"prioritize_queue_order": "FIFO",
|
48
50
|
"sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
49
51
|
"timeout_activity_name": "Offline",
|
@@ -79,22 +81,24 @@ describe 'Workspace' do
|
|
79
81
|
%q[
|
80
82
|
{
|
81
83
|
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
82
|
-
"date_created": "
|
83
|
-
"date_updated": "
|
84
|
+
"date_created": "2016-08-01T22:10:40Z",
|
85
|
+
"date_updated": "2016-08-01T22:10:40Z",
|
84
86
|
"default_activity_name": "Offline",
|
85
87
|
"default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
86
88
|
"event_callback_url": "",
|
87
|
-
"events_filter":
|
88
|
-
"friendly_name": "
|
89
|
+
"events_filter": null,
|
90
|
+
"friendly_name": "new",
|
89
91
|
"links": {
|
90
92
|
"activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities",
|
91
93
|
"statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics",
|
92
94
|
"task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues",
|
93
95
|
"tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks",
|
94
96
|
"workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
|
95
|
-
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows"
|
97
|
+
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
|
98
|
+
"task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
|
99
|
+
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
|
96
100
|
},
|
97
|
-
"multi_task_enabled":
|
101
|
+
"multi_task_enabled": false,
|
98
102
|
"prioritize_queue_order": "FIFO",
|
99
103
|
"sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
100
104
|
"timeout_activity_name": "Offline",
|
@@ -130,33 +134,35 @@ describe 'Workspace' do
|
|
130
134
|
%q[
|
131
135
|
{
|
132
136
|
"meta": {
|
133
|
-
"first_page_url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=
|
137
|
+
"first_page_url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=50&Page=0",
|
134
138
|
"key": "workspaces",
|
135
139
|
"next_page_url": null,
|
136
140
|
"page": 0,
|
137
|
-
"page_size":
|
141
|
+
"page_size": 50,
|
138
142
|
"previous_page_url": null,
|
139
|
-
"url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=
|
143
|
+
"url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=50&Page=0"
|
140
144
|
},
|
141
145
|
"workspaces": [
|
142
146
|
{
|
143
147
|
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
144
|
-
"date_created": "
|
145
|
-
"date_updated": "
|
148
|
+
"date_created": "2016-08-01T22:10:40Z",
|
149
|
+
"date_updated": "2016-08-01T22:10:40Z",
|
146
150
|
"default_activity_name": "Offline",
|
147
151
|
"default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
148
152
|
"event_callback_url": "",
|
149
|
-
"events_filter":
|
150
|
-
"friendly_name": "
|
153
|
+
"events_filter": null,
|
154
|
+
"friendly_name": "new",
|
151
155
|
"links": {
|
152
156
|
"activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities",
|
153
157
|
"statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics",
|
154
158
|
"task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues",
|
155
159
|
"tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks",
|
156
160
|
"workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
|
157
|
-
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows"
|
161
|
+
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
|
162
|
+
"task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
|
163
|
+
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
|
158
164
|
},
|
159
|
-
"multi_task_enabled":
|
165
|
+
"multi_task_enabled": false,
|
160
166
|
"prioritize_queue_order": "FIFO",
|
161
167
|
"sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
162
168
|
"timeout_activity_name": "Offline",
|
@@ -179,13 +185,13 @@ describe 'Workspace' do
|
|
179
185
|
%q[
|
180
186
|
{
|
181
187
|
"meta": {
|
182
|
-
"first_page_url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=
|
188
|
+
"first_page_url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=50&Page=0",
|
183
189
|
"key": "workspaces",
|
184
190
|
"next_page_url": null,
|
185
191
|
"page": 0,
|
186
|
-
"page_size":
|
192
|
+
"page_size": 50,
|
187
193
|
"previous_page_url": null,
|
188
|
-
"url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=
|
194
|
+
"url": "https://taskrouter.twilio.com/v1/Workspaces?PageSize=50&Page=0"
|
189
195
|
},
|
190
196
|
"workspaces": []
|
191
197
|
}
|
@@ -221,22 +227,24 @@ describe 'Workspace' do
|
|
221
227
|
%q[
|
222
228
|
{
|
223
229
|
"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
224
|
-
"date_created": "
|
225
|
-
"date_updated": "
|
230
|
+
"date_created": "2016-08-01T22:10:40Z",
|
231
|
+
"date_updated": "2016-08-01T22:10:40Z",
|
226
232
|
"default_activity_name": "Offline",
|
227
233
|
"default_activity_sid": "WAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
228
234
|
"event_callback_url": "",
|
229
|
-
"events_filter":
|
230
|
-
"friendly_name": "
|
235
|
+
"events_filter": null,
|
236
|
+
"friendly_name": "new",
|
231
237
|
"links": {
|
232
238
|
"activities": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Activities",
|
233
239
|
"statistics": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Statistics",
|
234
240
|
"task_queues": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskQueues",
|
235
241
|
"tasks": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Tasks",
|
236
242
|
"workers": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workers",
|
237
|
-
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows"
|
243
|
+
"workflows": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Workflows",
|
244
|
+
"task_channels": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/TaskChannels",
|
245
|
+
"events": "https://taskrouter.twilio.com/v1/Workspaces/WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Events"
|
238
246
|
},
|
239
|
-
"multi_task_enabled":
|
247
|
+
"multi_task_enabled": false,
|
240
248
|
"prioritize_queue_order": "FIFO",
|
241
249
|
"sid": "WSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
242
250
|
"timeout_activity_name": "Offline",
|
@@ -23,42 +23,42 @@ describe Twilio::JWT::ClientCapability do
|
|
23
23
|
it 'OutgoingClientScope sans params, client name' do
|
24
24
|
@outgoingScope = Twilio::JWT::OutgoingClientScope.new('test-application-sid')
|
25
25
|
@clientCapability.add_scope(@outgoingScope)
|
26
|
-
escope = 'scope:client:outgoing?appSid
|
26
|
+
escope = 'scope:client:outgoing?appSid=test-application-sid'
|
27
27
|
expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'OutgoingClientScope with client-name' do
|
31
31
|
@outgoingScope = Twilio::JWT::OutgoingClientScope.new('test-application-sid', 'test-client-name')
|
32
32
|
@clientCapability.add_scope(@outgoingScope)
|
33
|
-
escope = 'scope:client:outgoing?appSid
|
33
|
+
escope = 'scope:client:outgoing?appSid=test-application-sid&clientName=test-client-name'
|
34
34
|
expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'OutgoingClientScope with params' do
|
38
38
|
@outgoingScope = Twilio::JWT::OutgoingClientScope.new('test-application-sid', nil, {'params_key'=>'param_value'})
|
39
39
|
@clientCapability.add_scope(@outgoingScope)
|
40
|
-
escope = 'scope:client:outgoing?appSid
|
40
|
+
escope = 'scope:client:outgoing?appSid=test-application-sid&appParams=params_key%3Dparam_value'
|
41
41
|
expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
|
42
42
|
end
|
43
43
|
|
44
44
|
it 'IncomingClientScope' do
|
45
45
|
@incomingScope = Twilio::JWT::IncomingClientScope.new('test-client-name')
|
46
46
|
@clientCapability.add_scope(@incomingScope)
|
47
|
-
escope = 'scope:client:incoming?clientName
|
47
|
+
escope = 'scope:client:incoming?clientName=test-client-name'
|
48
48
|
expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
|
49
49
|
end
|
50
50
|
|
51
51
|
it 'EventStreamScope sans filters' do
|
52
52
|
@eventStreamScope = Twilio::JWT::EventStreamScope.new
|
53
53
|
@clientCapability.add_scope(@eventStreamScope)
|
54
|
-
escope = 'scope:stream:subscribe?path
|
54
|
+
escope = 'scope:stream:subscribe?path=%2F2010-04-01%2FEvents'
|
55
55
|
expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'EventStreamScope with filters' do
|
59
59
|
@eventStreamScope = Twilio::JWT::EventStreamScope.new({'param_key'=>'param_value'})
|
60
60
|
@clientCapability.add_scope(@eventStreamScope)
|
61
|
-
escope = 'scope:stream:subscribe?
|
61
|
+
escope = 'scope:stream:subscribe?path=%2F2010-04-01%2FEvents¶ms=param_key%3Dparam_value'
|
62
62
|
expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
|
63
63
|
end
|
64
64
|
|
@@ -67,7 +67,7 @@ describe Twilio::JWT::ClientCapability do
|
|
67
67
|
@clientCapability.add_scope(@outgoingScope)
|
68
68
|
@incomingScope = Twilio::JWT::IncomingClientScope.new('test-client-name')
|
69
69
|
@clientCapability.add_scope(@incomingScope)
|
70
|
-
escope = 'scope:client:outgoing?appSid
|
70
|
+
escope = 'scope:client:outgoing?appSid=test-application-sid scope:client:incoming?clientName=test-client-name'
|
71
71
|
expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
|
72
72
|
end
|
73
73
|
|
@@ -75,7 +75,7 @@ describe Twilio::JWT::ClientCapability do
|
|
75
75
|
@incomingScope = Twilio::JWT::IncomingClientScope.new('test-client-name')
|
76
76
|
@clientCapability.add_scope(@incomingScope)
|
77
77
|
payload, _ = ::JWT.decode @clientCapability.to_s, 'authToken', true, {:algorithm=>'HS256'}
|
78
|
-
escope = 'scope:client:incoming?clientName
|
78
|
+
escope = 'scope:client:incoming?clientName=test-client-name'
|
79
79
|
expect(payload['iss']).to eq('accountSid')
|
80
80
|
expect(payload['scope']).to eq(escope)
|
81
81
|
expect(payload['exp']).to be > Time.now.to_i
|
@@ -87,7 +87,7 @@ describe Twilio::JWT::ClientCapability do
|
|
87
87
|
it 'Valid scopes in constructor' do
|
88
88
|
@incomingScope = Twilio::JWT::IncomingClientScope.new('test-client-name')
|
89
89
|
@clientCapability = Twilio::JWT::ClientCapability.new 'accountSid', 'authToken', scopes: [@incomingScope]
|
90
|
-
escope = 'scope:client:incoming?clientName
|
90
|
+
escope = 'scope:client:incoming?clientName=test-client-name'
|
91
91
|
expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
|
92
92
|
end
|
93
93
|
end
|
@@ -77,7 +77,7 @@ describe Twilio::TwiML::VoiceResponse do
|
|
77
77
|
context 'Testing Play' do
|
78
78
|
it 'should allow empty play' do
|
79
79
|
r = Twilio::TwiML::VoiceResponse.new
|
80
|
-
r.play
|
80
|
+
r.play
|
81
81
|
|
82
82
|
# For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
|
83
83
|
# Ruby 2.4 generates an empty tag
|
@@ -87,21 +87,21 @@ describe Twilio::TwiML::VoiceResponse do
|
|
87
87
|
|
88
88
|
it 'should play hello' do
|
89
89
|
r = Twilio::TwiML::VoiceResponse.new
|
90
|
-
r.play 'http://hellomonkey.mp3'
|
90
|
+
r.play(url: 'http://hellomonkey.mp3')
|
91
91
|
|
92
92
|
expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play>http://hellomonkey.mp3</Play></Response>')
|
93
93
|
end
|
94
94
|
|
95
95
|
it 'should play hello on loop' do
|
96
96
|
r = Twilio::TwiML::VoiceResponse.new
|
97
|
-
r.play 'http://hellomonkey.mp3', loop: 3
|
97
|
+
r.play(url: 'http://hellomonkey.mp3', loop: 3)
|
98
98
|
|
99
99
|
expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play loop="3">http://hellomonkey.mp3</Play></Response>')
|
100
100
|
end
|
101
101
|
|
102
102
|
it 'should play digits' do
|
103
103
|
r = Twilio::TwiML::VoiceResponse.new
|
104
|
-
r.play
|
104
|
+
r.play(digits: 'w123')
|
105
105
|
|
106
106
|
# For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
|
107
107
|
# Ruby 2.4 generates an empty tag
|
@@ -440,7 +440,7 @@ describe Twilio::TwiML::VoiceResponse do
|
|
440
440
|
it 'should allow nested play and pause' do
|
441
441
|
g = Twilio::TwiML::Gather.new
|
442
442
|
g.say 'Hey'
|
443
|
-
g.play 'hey.mp3'
|
443
|
+
g.play(url: 'hey.mp3')
|
444
444
|
g.pause
|
445
445
|
|
446
446
|
r = Twilio::TwiML::VoiceResponse.new
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.0.
|
4
|
+
version: 5.0.0.rc23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Benton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: libxml-ruby
|