twilio-ruby 3.12.3 → 3.13.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 +8 -8
- data/CHANGES.md +12 -0
- data/README.md +14 -14
- data/Rakefile +2 -2
- data/docs/faq.rst +3 -3
- data/docs/getting-started.rst +17 -12
- data/docs/usage/accounts.rst +6 -6
- data/docs/usage/applications.rst +5 -5
- data/docs/usage/basics.rst +1 -1
- data/docs/usage/caller-ids.rst +4 -2
- data/docs/usage/conferences.rst +1 -1
- data/docs/usage/errors.rst +3 -3
- data/docs/usage/messages.rst +24 -16
- data/docs/usage/phone-calls.rst +10 -8
- data/docs/usage/phone-numbers.rst +15 -11
- data/docs/usage/sip.rst +9 -8
- data/docs/usage/twiml.rst +2 -2
- data/examples/examples.rb +44 -20
- data/lib/rack/twilio_webhook_authentication.rb +5 -1
- data/lib/twilio-ruby/rest/calls.rb +4 -4
- data/lib/twilio-ruby/rest/client.rb +25 -23
- data/lib/twilio-ruby/rest/conferences/participants.rb +2 -2
- data/lib/twilio-ruby/rest/incoming_phone_numbers.rb +1 -1
- data/lib/twilio-ruby/rest/instance_resource.rb +9 -5
- data/lib/twilio-ruby/rest/list_resource.rb +18 -10
- data/lib/twilio-ruby/rest/outgoing_caller_ids.rb +1 -1
- data/lib/twilio-ruby/rest/queues/members.rb +1 -1
- data/lib/twilio-ruby/rest/sip.rb +1 -3
- data/lib/twilio-ruby/rest/utils.rb +11 -3
- data/lib/twilio-ruby/util/capability.rb +4 -4
- data/lib/twilio-ruby/version.rb +1 -1
- data/spec/rack/twilio_webhook_authentication_spec.rb +18 -6
- data/spec/rest/account_spec.rb +24 -8
- data/spec/rest/call_spec.rb +6 -2
- data/spec/rest/client_spec.rb +37 -14
- data/spec/rest/conference_spec.rb +3 -1
- data/spec/rest/instance_resource_spec.rb +1 -1
- data/spec/rest/numbers_spec.rb +18 -6
- data/spec/rest/queue_spec.rb +3 -1
- data/spec/rest/recording_spec.rb +3 -1
- data/spec/util/url_encode_spec.rb +1 -1
- metadata +1 -1
data/lib/twilio-ruby/rest/sip.rb
CHANGED
@@ -4,7 +4,10 @@ module Twilio
|
|
4
4
|
|
5
5
|
def twilify(something)
|
6
6
|
if something.is_a? Hash
|
7
|
-
|
7
|
+
something = something.to_a
|
8
|
+
something = something.map { |a| [twilify(a[0]).to_sym, a[1]] }
|
9
|
+
something = something.flatten(1)
|
10
|
+
Hash[*something]
|
8
11
|
else
|
9
12
|
something.to_s.split('_').map! do |s|
|
10
13
|
[s[0,1].capitalize, s[1..-1]].join
|
@@ -14,9 +17,14 @@ module Twilio
|
|
14
17
|
|
15
18
|
def detwilify(something)
|
16
19
|
if something.is_a? Hash
|
17
|
-
|
20
|
+
something = *something.to_a
|
21
|
+
something.map! { |pair| [detwilify(pair[0]).to_sym, pair[1]] }
|
22
|
+
something = something.flatten
|
23
|
+
Hash[something]
|
18
24
|
else
|
19
|
-
something
|
25
|
+
something = something.to_s
|
26
|
+
something = something.gsub(/[A-Z][a-z]*/) { |s| "_#{s.downcase}" }
|
27
|
+
something.gsub(/^_/, '')
|
20
28
|
end
|
21
29
|
end
|
22
30
|
|
@@ -15,20 +15,20 @@ module Twilio
|
|
15
15
|
|
16
16
|
def allow_client_incoming(client_name)
|
17
17
|
@client_name = client_name # stash for use in outgoing
|
18
|
-
scope_params = {'clientName' => client_name}
|
18
|
+
scope_params = { 'clientName' => client_name }
|
19
19
|
@capabilities << scope_uri_for('client', 'incoming', scope_params)
|
20
20
|
end
|
21
21
|
|
22
22
|
def allow_client_outgoing(app_sid, params = {})
|
23
23
|
@allow_client_outgoing = true
|
24
|
-
@outgoing_scope_params = {'appSid' => app_sid}
|
24
|
+
@outgoing_scope_params = { 'appSid' => app_sid }
|
25
25
|
unless params.empty?
|
26
26
|
@outgoing_scope_params['appParams'] = url_encode params
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
def allow_event_stream(filters = {})
|
31
|
-
scope_params = {'path' => '/2010-04-01/Events'}
|
31
|
+
scope_params = { 'path' => '/2010-04-01/Events' }
|
32
32
|
scope_params['params'] = filters unless filters.empty?
|
33
33
|
@capabilities << scope_uri_for('stream', 'subscribe', scope_params)
|
34
34
|
end
|
@@ -45,7 +45,7 @@ module Twilio
|
|
45
45
|
# build the outgoing scope lazily so that we can use @client_name
|
46
46
|
if @allow_client_outgoing
|
47
47
|
params = @outgoing_scope_params
|
48
|
-
params.merge!(
|
48
|
+
params.merge!('clientName' => @client_name) if @client_name
|
49
49
|
capabilities << scope_uri_for('client', 'outgoing', params)
|
50
50
|
end
|
51
51
|
|
data/lib/twilio-ruby/version.rb
CHANGED
@@ -22,7 +22,9 @@ describe Rack::TwilioWebhookAuthentication do
|
|
22
22
|
|
23
23
|
describe 'calling against one path' do
|
24
24
|
before do
|
25
|
-
@middleware = Rack::TwilioWebhookAuthentication.new(
|
25
|
+
@middleware = Rack::TwilioWebhookAuthentication.new(
|
26
|
+
@app, 'ABC', /\/voice/
|
27
|
+
)
|
26
28
|
end
|
27
29
|
|
28
30
|
it 'should not intercept when the path doesn\'t match' do
|
@@ -33,14 +35,18 @@ describe Rack::TwilioWebhookAuthentication do
|
|
33
35
|
end
|
34
36
|
|
35
37
|
it 'should allow a request through if it validates' do
|
36
|
-
expect_any_instance_of(Twilio::Util::RequestValidator).to
|
38
|
+
expect_any_instance_of(Twilio::Util::RequestValidator).to(
|
39
|
+
receive(:validate).and_return(true)
|
40
|
+
)
|
37
41
|
request = Rack::MockRequest.env_for('/voice')
|
38
42
|
status, headers, body = @middleware.call(request)
|
39
43
|
expect(status).to be(200)
|
40
44
|
end
|
41
45
|
|
42
46
|
it 'should short circuit a request to 403 if it does not validate' do
|
43
|
-
expect_any_instance_of(Twilio::Util::RequestValidator).to
|
47
|
+
expect_any_instance_of(Twilio::Util::RequestValidator).to(
|
48
|
+
receive(:validate).and_return(false)
|
49
|
+
)
|
44
50
|
request = Rack::MockRequest.env_for('/voice')
|
45
51
|
status, headers, body = @middleware.call(request)
|
46
52
|
expect(status).to be(403)
|
@@ -49,7 +55,9 @@ describe Rack::TwilioWebhookAuthentication do
|
|
49
55
|
|
50
56
|
describe 'calling against many paths' do
|
51
57
|
before do
|
52
|
-
@middleware = Rack::TwilioWebhookAuthentication.new(
|
58
|
+
@middleware = Rack::TwilioWebhookAuthentication.new(
|
59
|
+
@app, 'ABC', /\/voice/, /\/sms/
|
60
|
+
)
|
53
61
|
end
|
54
62
|
|
55
63
|
it 'should not intercept when the path doesn\'t match' do
|
@@ -60,14 +68,18 @@ describe Rack::TwilioWebhookAuthentication do
|
|
60
68
|
end
|
61
69
|
|
62
70
|
it 'shold allow a request through if it validates' do
|
63
|
-
expect_any_instance_of(Twilio::Util::RequestValidator).to
|
71
|
+
expect_any_instance_of(Twilio::Util::RequestValidator).to(
|
72
|
+
receive(:validate).and_return(true)
|
73
|
+
)
|
64
74
|
request = Rack::MockRequest.env_for('/sms')
|
65
75
|
status, headers, body = @middleware.call(request)
|
66
76
|
expect(status).to be(200)
|
67
77
|
end
|
68
78
|
|
69
79
|
it 'should short circuit a request to 403 if it does not validate' do
|
70
|
-
expect_any_instance_of(Twilio::Util::RequestValidator).to
|
80
|
+
expect_any_instance_of(Twilio::Util::RequestValidator).to(
|
81
|
+
receive(:validate).and_return(false)
|
82
|
+
)
|
71
83
|
request = Rack::MockRequest.env_for('/sms')
|
72
84
|
status, headers, body = @middleware.call(request)
|
73
85
|
expect(status).to be(403)
|
data/spec/rest/account_spec.rb
CHANGED
@@ -8,17 +8,23 @@ describe Twilio::REST::Account do
|
|
8
8
|
|
9
9
|
it 'sets up incoming phone numbers resources object' do
|
10
10
|
expect(@account).to respond_to(:incoming_phone_numbers)
|
11
|
-
expect(@account.incoming_phone_numbers.instance_variable_get('@path')).to
|
11
|
+
expect(@account.incoming_phone_numbers.instance_variable_get('@path')).to(
|
12
|
+
eq('someUri/IncomingPhoneNumbers')
|
13
|
+
)
|
12
14
|
end
|
13
15
|
|
14
16
|
it 'sets up an available phone numbers resources object' do
|
15
17
|
expect(@account).to respond_to(:available_phone_numbers)
|
16
|
-
expect(@account.available_phone_numbers.instance_variable_get('@path')).to
|
18
|
+
expect(@account.available_phone_numbers.instance_variable_get('@path')).to(
|
19
|
+
eq('someUri/AvailablePhoneNumbers')
|
20
|
+
)
|
17
21
|
end
|
18
22
|
|
19
23
|
it 'sets up an outgoing caller ids resources object' do
|
20
24
|
expect(@account).to respond_to(:outgoing_caller_ids)
|
21
|
-
expect(@account.outgoing_caller_ids.instance_variable_get('@path')).to eq(
|
25
|
+
expect(@account.outgoing_caller_ids.instance_variable_get('@path')).to eq(
|
26
|
+
'someUri/OutgoingCallerIds'
|
27
|
+
)
|
22
28
|
end
|
23
29
|
|
24
30
|
it 'sets up a calls resources object' do
|
@@ -28,12 +34,16 @@ describe Twilio::REST::Account do
|
|
28
34
|
|
29
35
|
it 'sets up a conferences resources object' do
|
30
36
|
expect(@account).to respond_to(:conferences)
|
31
|
-
expect(@account.conferences.instance_variable_get('@path')).to eq(
|
37
|
+
expect(@account.conferences.instance_variable_get('@path')).to eq(
|
38
|
+
'someUri/Conferences'
|
39
|
+
)
|
32
40
|
end
|
33
41
|
|
34
42
|
it 'sets up a queues resources object' do
|
35
43
|
expect(@account).to respond_to(:queues)
|
36
|
-
expect(@account.queues.instance_variable_get('@path')).to eq(
|
44
|
+
expect(@account.queues.instance_variable_get('@path')).to eq(
|
45
|
+
'someUri/Queues'
|
46
|
+
)
|
37
47
|
end
|
38
48
|
|
39
49
|
it 'sets up a sms resource object' do
|
@@ -43,16 +53,22 @@ describe Twilio::REST::Account do
|
|
43
53
|
|
44
54
|
it 'sets up a recordings resources object' do
|
45
55
|
expect(@account).to respond_to(:recordings)
|
46
|
-
expect(@account.recordings.instance_variable_get('@path')).to eq(
|
56
|
+
expect(@account.recordings.instance_variable_get('@path')).to eq(
|
57
|
+
'someUri/Recordings'
|
58
|
+
)
|
47
59
|
end
|
48
60
|
|
49
61
|
it 'sets up a transcriptions resources object' do
|
50
62
|
expect(@account).to respond_to(:transcriptions)
|
51
|
-
expect(@account.transcriptions.instance_variable_get('@path')).to eq(
|
63
|
+
expect(@account.transcriptions.instance_variable_get('@path')).to eq(
|
64
|
+
'someUri/Transcriptions'
|
65
|
+
)
|
52
66
|
end
|
53
67
|
|
54
68
|
it 'sets up a notifications resources object' do
|
55
69
|
expect(@account).to respond_to(:notifications)
|
56
|
-
expect(@account.notifications.instance_variable_get('@path')).to eq(
|
70
|
+
expect(@account.notifications.instance_variable_get('@path')).to eq(
|
71
|
+
'someUri/Notifications'
|
72
|
+
)
|
57
73
|
end
|
58
74
|
end
|
data/spec/rest/call_spec.rb
CHANGED
@@ -8,11 +8,15 @@ describe Twilio::REST::Call do
|
|
8
8
|
|
9
9
|
it 'sets up a recordings resources object' do
|
10
10
|
expect(@call).to respond_to(:recordings)
|
11
|
-
expect(@call.recordings.instance_variable_get('@path')).to eq(
|
11
|
+
expect(@call.recordings.instance_variable_get('@path')).to eq(
|
12
|
+
'someUri/Recordings'
|
13
|
+
)
|
12
14
|
end
|
13
15
|
|
14
16
|
it 'sets up a notifications resources object' do
|
15
17
|
expect(@call).to respond_to(:notifications)
|
16
|
-
expect(@call.notifications.instance_variable_get('@path')).to eq(
|
18
|
+
expect(@call.notifications.instance_variable_get('@path')).to eq(
|
19
|
+
'someUri/Notifications'
|
20
|
+
)
|
17
21
|
end
|
18
22
|
end
|
data/spec/rest/client_spec.rb
CHANGED
@@ -61,14 +61,14 @@ describe Twilio::REST::Client do
|
|
61
61
|
end
|
62
62
|
|
63
63
|
it 'should not raise an error if the response body is empty' do
|
64
|
-
FakeWeb.register_uri(:any, %r/api\.twilio\.com/, :
|
64
|
+
FakeWeb.register_uri(:any, %r/api\.twilio\.com/, body: '')
|
65
65
|
twilio = Twilio::REST::Client.new('someSid', 'someToken')
|
66
66
|
Twilio::REST::IncomingPhoneNumber.new('/phone_number', twilio).delete
|
67
67
|
end
|
68
68
|
|
69
69
|
it 'should not raise an error if the response body is nil' do
|
70
|
-
response = double(:response, :
|
71
|
-
connection = double(:connection, :
|
70
|
+
response = double(:response, body: nil)
|
71
|
+
connection = double(:connection, request: response)
|
72
72
|
twilio = Twilio::REST::Client.new('someSid', 'someToken')
|
73
73
|
twilio.instance_variable_set(:@connection, connection)
|
74
74
|
Twilio::REST::IncomingPhoneNumber.new('/phone_number', twilio).delete
|
@@ -89,22 +89,28 @@ describe Twilio::REST::Client do
|
|
89
89
|
end
|
90
90
|
|
91
91
|
it 'should set up the requested ssl verification ca_file if provided' do
|
92
|
-
twilio = Twilio::REST::Client.new(
|
92
|
+
twilio = Twilio::REST::Client.new(
|
93
|
+
'someSid', 'someToken', ssl_ca_file: '/path/to/ca/file'
|
94
|
+
)
|
93
95
|
connection = twilio.instance_variable_get('@connection')
|
94
96
|
expect(connection.ca_file).to eq('/path/to/ca/file')
|
95
97
|
end
|
96
98
|
|
97
|
-
it 'should set up the proper http ssl connection when a different
|
98
|
-
|
99
|
+
it 'should set up the proper http ssl connection when a different ' \
|
100
|
+
'domain is given' do
|
101
|
+
twilio = Twilio::REST::Client.new(
|
102
|
+
'someSid', 'someToken', host: 'api.faketwilio.com'
|
103
|
+
)
|
99
104
|
connection = twilio.instance_variable_get('@connection')
|
100
105
|
expect(connection.address).to eq('api.faketwilio.com')
|
101
106
|
expect(connection.port).to eq(443)
|
102
107
|
expect(connection.use_ssl?).to eq(true)
|
103
108
|
end
|
104
109
|
|
105
|
-
it 'should adjust the open and read timeouts on the underlying Net::HTTP
|
110
|
+
it 'should adjust the open and read timeouts on the underlying Net::HTTP ' \
|
111
|
+
'object when asked' do
|
106
112
|
timeout = rand(30)
|
107
|
-
twilio = Twilio::REST::Client.new('someSid', 'someToken', :
|
113
|
+
twilio = Twilio::REST::Client.new('someSid', 'someToken', timeout: timeout)
|
108
114
|
connection = twilio.instance_variable_get('@connection')
|
109
115
|
expect(connection.port).to eq(443)
|
110
116
|
expect(connection.use_ssl?).to eq(true)
|
@@ -112,8 +118,14 @@ describe Twilio::REST::Client do
|
|
112
118
|
expect(connection.read_timeout).to eq(timeout)
|
113
119
|
end
|
114
120
|
|
115
|
-
it 'should set up the proper http ssl connection when a proxy_host is
|
116
|
-
|
121
|
+
it 'should set up the proper http ssl connection when a proxy_host is ' \
|
122
|
+
'given' do
|
123
|
+
twilio = Twilio::REST::Client.new(
|
124
|
+
'someSid',
|
125
|
+
'someToken',
|
126
|
+
host: 'api.faketwilio.com',
|
127
|
+
proxy_addr: 'localhost'
|
128
|
+
)
|
117
129
|
connection = twilio.instance_variable_get('@connection')
|
118
130
|
expect(connection.proxy?).to eq(true)
|
119
131
|
expect(connection.proxy_address).to eq('localhost')
|
@@ -123,8 +135,15 @@ describe Twilio::REST::Client do
|
|
123
135
|
expect(connection.use_ssl?).to eq(true)
|
124
136
|
end
|
125
137
|
|
126
|
-
it 'should set up the proper http ssl connection when a proxy_host and
|
127
|
-
|
138
|
+
it 'should set up the proper http ssl connection when a proxy_host and ' \
|
139
|
+
'proxy_port are given' do
|
140
|
+
twilio = Twilio::REST::Client.new(
|
141
|
+
'someSid',
|
142
|
+
'someToken',
|
143
|
+
host: 'api.faketwilio.com',
|
144
|
+
proxy_addr: 'localhost',
|
145
|
+
proxy_port: 13128
|
146
|
+
)
|
128
147
|
connection = twilio.instance_variable_get('@connection')
|
129
148
|
expect(connection.proxy?).to eq(true)
|
130
149
|
expect(connection.proxy_address).to eq('localhost')
|
@@ -137,13 +156,17 @@ describe Twilio::REST::Client do
|
|
137
156
|
it 'should set up an accounts resources object' do
|
138
157
|
twilio = Twilio::REST::Client.new('someSid', 'someToken')
|
139
158
|
expect(twilio).to respond_to(:accounts)
|
140
|
-
expect(twilio.accounts.instance_variable_get('@path')).to eq(
|
159
|
+
expect(twilio.accounts.instance_variable_get('@path')).to eq(
|
160
|
+
'/2010-04-01/Accounts'
|
161
|
+
)
|
141
162
|
end
|
142
163
|
|
143
164
|
it 'should set up an account object with the given sid' do
|
144
165
|
twilio = Twilio::REST::Client.new('someSid', 'someToken')
|
145
166
|
expect(twilio).to respond_to(:account)
|
146
|
-
expect(twilio.account.instance_variable_get('@path')).to eq(
|
167
|
+
expect(twilio.account.instance_variable_get('@path')).to eq(
|
168
|
+
'/2010-04-01/Accounts/someSid'
|
169
|
+
)
|
147
170
|
end
|
148
171
|
|
149
172
|
[
|
@@ -4,6 +4,8 @@ describe Twilio::REST::Conference do
|
|
4
4
|
it 'should set up a participants resources object' do
|
5
5
|
conference = Twilio::REST::Conference.new('someUri', 'someClient')
|
6
6
|
expect(conference).to respond_to(:participants)
|
7
|
-
expect(conference.participants.instance_variable_get('@path')).to eq(
|
7
|
+
expect(conference.participants.instance_variable_get('@path')).to eq(
|
8
|
+
'someUri/Participants'
|
9
|
+
)
|
8
10
|
end
|
9
11
|
end
|
@@ -8,7 +8,7 @@ describe Twilio::REST::InstanceResource do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'should set up object properties if passed' do
|
11
|
-
params = {'SomeKey' => 'someValue'}
|
11
|
+
params = { 'SomeKey' => 'someValue' }
|
12
12
|
resource = Twilio::REST::InstanceResource.new('uri', 'client', params)
|
13
13
|
expect(resource.some_key).to eq('someValue')
|
14
14
|
end
|
data/spec/rest/numbers_spec.rb
CHANGED
@@ -13,12 +13,16 @@ describe Twilio::REST::Country do
|
|
13
13
|
|
14
14
|
it 'sets up a toll_free resources object' do
|
15
15
|
expect(@country).to respond_to(:toll_free)
|
16
|
-
expect(@country.toll_free.instance_variable_get('@path')).to eq(
|
16
|
+
expect(@country.toll_free.instance_variable_get('@path')).to eq(
|
17
|
+
'someUri/TollFree'
|
18
|
+
)
|
17
19
|
end
|
18
20
|
|
19
21
|
it 'sets up a mobile resources object' do
|
20
22
|
expect(@country).to respond_to(:mobile)
|
21
|
-
expect(@country.mobile.instance_variable_get('@path')).to eq(
|
23
|
+
expect(@country.mobile.instance_variable_get('@path')).to eq(
|
24
|
+
'someUri/Mobile'
|
25
|
+
)
|
22
26
|
end
|
23
27
|
|
24
28
|
end
|
@@ -26,21 +30,29 @@ end
|
|
26
30
|
describe Twilio::REST::NumberType do
|
27
31
|
|
28
32
|
before do
|
29
|
-
@incoming_phone_numbers = Twilio::REST::IncomingPhoneNumbers.new(
|
33
|
+
@incoming_phone_numbers = Twilio::REST::IncomingPhoneNumbers.new(
|
34
|
+
'someUri', 'someClient'
|
35
|
+
)
|
30
36
|
end
|
31
37
|
|
32
38
|
it 'sets up a local resources object' do
|
33
39
|
expect(@incoming_phone_numbers).to respond_to(:local)
|
34
|
-
expect(@incoming_phone_numbers.local.instance_variable_get('@path')).to eq(
|
40
|
+
expect(@incoming_phone_numbers.local.instance_variable_get('@path')).to eq(
|
41
|
+
'someUri/Local'
|
42
|
+
)
|
35
43
|
end
|
36
44
|
|
37
45
|
it 'sets up a toll_free resources object' do
|
38
46
|
expect(@incoming_phone_numbers).to respond_to(:toll_free)
|
39
|
-
expect(@incoming_phone_numbers.toll_free.instance_variable_get('@path')).to
|
47
|
+
expect(@incoming_phone_numbers.toll_free.instance_variable_get('@path')).to(
|
48
|
+
eq('someUri/TollFree')
|
49
|
+
)
|
40
50
|
end
|
41
51
|
|
42
52
|
it 'sets up a mobile resources object' do
|
43
53
|
expect(@incoming_phone_numbers).to respond_to(:mobile)
|
44
|
-
expect(@incoming_phone_numbers.mobile.instance_variable_get('@path')).to eq(
|
54
|
+
expect(@incoming_phone_numbers.mobile.instance_variable_get('@path')).to eq(
|
55
|
+
'someUri/Mobile'
|
56
|
+
)
|
45
57
|
end
|
46
58
|
end
|
data/spec/rest/queue_spec.rb
CHANGED
@@ -4,6 +4,8 @@ describe Twilio::REST::Queue do
|
|
4
4
|
it 'should set up a members resources object' do
|
5
5
|
queue = Twilio::REST::Queue.new('someUri', 'someClient')
|
6
6
|
expect(queue).to respond_to(:members)
|
7
|
-
expect(queue.members.instance_variable_get('@path')).to eq(
|
7
|
+
expect(queue.members.instance_variable_get('@path')).to eq(
|
8
|
+
'someUri/Members'
|
9
|
+
)
|
8
10
|
end
|
9
11
|
end
|
data/spec/rest/recording_spec.rb
CHANGED
@@ -4,6 +4,8 @@ describe Twilio::REST::Recording do
|
|
4
4
|
it 'should set up a transcriptions resources object' do
|
5
5
|
call = Twilio::REST::Recording.new('someUri', 'someClient')
|
6
6
|
expect(call).to respond_to(:transcriptions)
|
7
|
-
expect(call.transcriptions.instance_variable_get('@path')).to eq(
|
7
|
+
expect(call.transcriptions.instance_variable_get('@path')).to eq(
|
8
|
+
'someUri/Transcriptions'
|
9
|
+
)
|
8
10
|
end
|
9
11
|
end
|