twilio-ruby 3.4.0 → 3.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +14 -7
- data/lib/twilio-ruby/rest/client.rb +7 -1
- data/lib/twilio-ruby/rest/instance_resource.rb +3 -6
- data/lib/twilio-ruby/rest/list_resource.rb +3 -4
- data/lib/twilio-ruby/version.rb +1 -1
- data/test/twilio_spec.rb +58 -26
- data/twilio-ruby.gemspec +1 -1
- metadata +4 -6
- data/README.rdoc +0 -0
data/README.md
CHANGED
@@ -42,13 +42,13 @@ capability.allow_client_incoming 'andrew'
|
|
42
42
|
@token = capability.generate
|
43
43
|
```
|
44
44
|
|
45
|
-
There is a slightly more detailed document in the
|
46
|
-
|
45
|
+
There is a slightly more detailed document in the [Capability][capability]
|
46
|
+
section of the wiki.
|
47
47
|
|
48
48
|
## Getting Started With TwiML
|
49
49
|
|
50
|
-
TwiML support is based on the [builder][
|
51
|
-
response like this:
|
50
|
+
TwiML support is based on the [builder][builder] library. You can construct a
|
51
|
+
TwiML response like this:
|
52
52
|
|
53
53
|
``` ruby
|
54
54
|
require 'rubygems' # not necessary with ruby 1.9 but included for completeness
|
@@ -144,8 +144,15 @@ auth_token = '62ea81de3a5b414154eb263595357c69'
|
|
144
144
|
|
145
145
|
## More Information
|
146
146
|
|
147
|
-
There are more detailed examples in the included [examples.rb]
|
147
|
+
There are more detailed examples in the included [examples.rb][examples].
|
148
148
|
|
149
|
-
Full [API documentation]
|
149
|
+
Full [API documentation][documentation], as well as an [upgrade guide][upgrade]
|
150
|
+
for users of the old twiliolib gem, is available in the
|
151
|
+
[twilio-ruby github wiki][wiki].
|
150
152
|
|
151
|
-
[
|
153
|
+
[capability]:https://github.com/twilio/twilio-ruby/wiki/Capability
|
154
|
+
[builder]:http://builder.rubyforge.org/
|
155
|
+
[examples]:https://github.com/twilio/twilio-ruby/blob/master/examples.rb
|
156
|
+
[documentation]:https://github.com/twilio/twilio-ruby/wiki/Documentation
|
157
|
+
[upgrade]:https://github.com/twilio/twilio-ruby/wiki/UpgradeGuide
|
158
|
+
[wiki]:https://github.com/twilio/twilio-ruby/wiki
|
@@ -82,6 +82,11 @@ module Twilio
|
|
82
82
|
# to avoid insecure connection warnings in environments without the proper
|
83
83
|
# cert validation chain.
|
84
84
|
#
|
85
|
+
# === <tt>:ssl_ca_file => '/path/to/ca/file'</tt>
|
86
|
+
#
|
87
|
+
# Specify the path to the certificate authority bundle you'd like to use
|
88
|
+
# when verifying Twilio's SSL certificate.
|
89
|
+
#
|
85
90
|
# === <tt>:timeout => 30</tt>
|
86
91
|
#
|
87
92
|
# Set the time in seconds to wait before timing out the HTTP request.
|
@@ -125,7 +130,7 @@ module Twilio
|
|
125
130
|
method_class = Net::HTTP.const_get method.to_s.capitalize
|
126
131
|
define_method method do |uri, *args|
|
127
132
|
params = twilify args[0]; params = {} if params.empty?
|
128
|
-
uri
|
133
|
+
uri = "#{uri}.json" # create a local copy of the uri to manipulate
|
129
134
|
uri << "?#{url_encode(params)}" if method == :get && !params.empty?
|
130
135
|
request = method_class.new uri, HTTP_HEADERS
|
131
136
|
request.basic_auth @account_sid, @auth_token
|
@@ -181,6 +186,7 @@ module Twilio
|
|
181
186
|
config[:proxy_port], config[:proxy_user], config[:proxy_pass]
|
182
187
|
@connection = connection_class.new config[:host], config[:port]
|
183
188
|
@connection.use_ssl = config[:use_ssl]
|
189
|
+
@connection.ca_file = config[:ssl_ca_file]
|
184
190
|
unless config[:ssl_verify_peer]
|
185
191
|
@connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
186
192
|
end
|
@@ -38,8 +38,7 @@ module Twilio
|
|
38
38
|
# instance resource, including the newly updated properties.
|
39
39
|
def update(params = {})
|
40
40
|
raise "Can't update a resource without a REST Client" unless @client
|
41
|
-
|
42
|
-
set_up_properties_from response
|
41
|
+
set_up_properties_from(@client.post(@uri, params))
|
43
42
|
self
|
44
43
|
end
|
45
44
|
|
@@ -49,8 +48,7 @@ module Twilio
|
|
49
48
|
def refresh
|
50
49
|
raise "Can't refresh a resource without a REST Client" unless @client
|
51
50
|
@updated = false
|
52
|
-
|
53
|
-
set_up_properties_from response
|
51
|
+
set_up_properties_from(@client.get(@uri))
|
54
52
|
self
|
55
53
|
end
|
56
54
|
|
@@ -68,8 +66,7 @@ module Twilio
|
|
68
66
|
# until an attempt is made to access an unknown attribute.
|
69
67
|
def method_missing(method, *args)
|
70
68
|
super if @updated
|
71
|
-
|
72
|
-
set_up_properties_from response
|
69
|
+
set_up_properties_from(@client.get(@uri))
|
73
70
|
self.send method, *args
|
74
71
|
end
|
75
72
|
|
@@ -33,10 +33,10 @@ module Twilio
|
|
33
33
|
resource
|
34
34
|
end
|
35
35
|
# set the +total+ property on the array
|
36
|
-
resource_list.instance_eval
|
36
|
+
resource_list.instance_eval do
|
37
37
|
eigenclass = class << self; self; end
|
38
38
|
eigenclass.send :define_method, :total, &lambda {response['total']}
|
39
|
-
|
39
|
+
end
|
40
40
|
resource_list
|
41
41
|
end
|
42
42
|
|
@@ -49,8 +49,7 @@ module Twilio
|
|
49
49
|
# +total+ attribute as well.
|
50
50
|
def total
|
51
51
|
raise "Can't get a resource total without a REST Client" unless @client
|
52
|
-
|
53
|
-
@total = response['total']
|
52
|
+
@client.get(@uri, :page_size => 1)['total']
|
54
53
|
end
|
55
54
|
|
56
55
|
##
|
data/lib/twilio-ruby/version.rb
CHANGED
data/test/twilio_spec.rb
CHANGED
@@ -21,6 +21,12 @@ describe Twilio::REST::Client do
|
|
21
21
|
twilio.instance_variable_get('@connection').use_ssl?.should == true
|
22
22
|
end
|
23
23
|
|
24
|
+
it 'should set up the requested ssl verification ca_file if provided' do
|
25
|
+
twilio = Twilio::REST::Client.new('someSid', 'someToken', :ssl_ca_file => '/path/to/ca/file')
|
26
|
+
connection = twilio.instance_variable_get('@connection')
|
27
|
+
connection.ca_file.should == '/path/to/ca/file'
|
28
|
+
end
|
29
|
+
|
24
30
|
it 'should set up the proper http ssl connection when a different domain is given' do
|
25
31
|
twilio = Twilio::REST::Client.new('someSid', 'someToken', :host => 'api.faketwilio.com')
|
26
32
|
twilio.instance_variable_get('@connection').address.should == 'api.faketwilio.com'
|
@@ -182,39 +188,65 @@ describe Twilio::REST::Recording do
|
|
182
188
|
end
|
183
189
|
|
184
190
|
describe Twilio::Util::RequestValidator do
|
185
|
-
it 'should properly validate a Twilio request
|
186
|
-
token = '
|
191
|
+
it 'should properly validate a Twilio Voice request' do
|
192
|
+
token = '2bd9e9638872de601313dc77410d3b23'
|
187
193
|
validator = Twilio::Util::RequestValidator.new token
|
188
|
-
url = 'http://
|
194
|
+
url = 'http://twiliotests.heroku.com/validate/voice'
|
189
195
|
params = {
|
190
|
-
'
|
191
|
-
'
|
192
|
-
'CallSid' => 'CAd800bb12c0426a7ea4230e492fef2a4f',
|
193
|
-
'CallStatus' => 'ringing',
|
194
|
-
'Called' => '+15306384866',
|
195
|
-
'CalledCity' => 'OAKLAND',
|
196
|
-
'CalledCountry' => 'US',
|
197
|
-
'CalledState' => 'CA',
|
198
|
-
'CalledZip' => '94612',
|
199
|
-
'Caller' => '+15306666666',
|
200
|
-
'CallerCity' => 'SOUTH LAKE TAHOE',
|
201
|
-
'CallerCountry' => 'US',
|
202
|
-
'CallerName' => 'CA Wireless Call',
|
203
|
-
'CallerState' => 'CA',
|
204
|
-
'CallerZip' => '89449',
|
196
|
+
'ToState' => 'California',
|
197
|
+
'CalledState' => 'California',
|
205
198
|
'Direction' => 'inbound',
|
206
|
-
'From' => '+15306666666',
|
207
|
-
'FromCity' => 'SOUTH LAKE TAHOE',
|
208
|
-
'FromCountry' => 'US',
|
209
199
|
'FromState' => 'CA',
|
210
|
-
'
|
211
|
-
'
|
212
|
-
'
|
200
|
+
'AccountSid' => 'ACba8bc05eacf94afdae398e642c9cc32d',
|
201
|
+
'Caller' => '+14153595711',
|
202
|
+
'CallerZip' => '94108',
|
203
|
+
'CallerCountry' => 'US',
|
204
|
+
'From' => '+14153595711',
|
205
|
+
'FromCity' => 'SAN FRANCISCO',
|
206
|
+
'CallerCity' => 'SAN FRANCISCO',
|
207
|
+
'To' => '+14157669926',
|
208
|
+
'FromZip' => '94108',
|
209
|
+
'FromCountry' => 'US',
|
210
|
+
'ToCity' => '',
|
211
|
+
'CallStatus' => 'ringing',
|
212
|
+
'CalledCity' => '',
|
213
|
+
'CallerState' => 'CA',
|
214
|
+
'CalledZip' => '',
|
215
|
+
'ToZip' => '',
|
213
216
|
'ToCountry' => 'US',
|
217
|
+
'CallSid' => 'CA136d09cd59a3c0ec8dbff44da5c03f31',
|
218
|
+
'CalledCountry' => 'US',
|
219
|
+
'Called' => '+14157669926',
|
220
|
+
'ApiVersion' => '2010-04-01',
|
221
|
+
'ApplicationSid' => 'AP44efecad51364e80b133bb7c07eb8204'
|
222
|
+
}
|
223
|
+
signature = 'oVb2kXoVy8GEfwBDjR8bk/ZZ6eA='
|
224
|
+
validator.validate(url, params, signature).should == true
|
225
|
+
end
|
226
|
+
|
227
|
+
it 'should properly validate a Twilio SMS request' do
|
228
|
+
token = '2bd9e9638872de601313dc77410d3b23'
|
229
|
+
validator = Twilio::Util::RequestValidator.new token
|
230
|
+
url = 'http://twiliotests.heroku.com/validate/sms'
|
231
|
+
params = {
|
214
232
|
'ToState' => 'CA',
|
215
|
-
'
|
233
|
+
'FromState' => 'CA',
|
234
|
+
'AccountSid' => 'ACba8bc05eacf94afdae398e642c9cc32d',
|
235
|
+
'SmsMessageSid' => 'SM2003cbd5e6a3701999aa3e5f20ff2787',
|
236
|
+
'Body' => 'Orly',
|
237
|
+
'From' => '+14159354345',
|
238
|
+
'FromCity' => 'SAN FRANCISCO',
|
239
|
+
'SmsStatus' => 'received',
|
240
|
+
'FromZip' => '94107',
|
241
|
+
'FromCountry' => 'US',
|
242
|
+
'To' => '+14158141819',
|
243
|
+
'ToCity' => 'SAN FRANCISCO',
|
244
|
+
'ToZip' => '94105',
|
245
|
+
'ToCountry' => 'US',
|
246
|
+
'ApiVersion' => '2010-04-01',
|
247
|
+
'SmsSid' => 'SM2003cbd5e6a3701999aa3e5f20ff2787'
|
216
248
|
}
|
217
|
-
signature = '
|
249
|
+
signature = 'mxeiv65lEe0b8L6LdVw2jgJi8yw='
|
218
250
|
validator.validate(url, params, signature).should == true
|
219
251
|
end
|
220
252
|
end
|
data/twilio-ruby.gemspec
CHANGED
@@ -24,6 +24,6 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_development_dependency 'fakeweb', '~> 1.3.0'
|
25
25
|
s.add_development_dependency 'rack', '~> 1.3.0'
|
26
26
|
|
27
|
-
s.extra_rdoc_files = ['README.md', '
|
27
|
+
s.extra_rdoc_files = ['README.md', 'examples.rb', 'LICENSE']
|
28
28
|
s.rdoc_options = ['--line-numbers', '--inline-source', '--title', 'twilio-ruby', '--main', 'README.md']
|
29
29
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 3.4.
|
9
|
+
- 1
|
10
|
+
version: 3.4.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Benton
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-09
|
18
|
+
date: 2011-10-09 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -138,7 +138,6 @@ extensions: []
|
|
138
138
|
|
139
139
|
extra_rdoc_files:
|
140
140
|
- README.md
|
141
|
-
- README.rdoc
|
142
141
|
- examples.rb
|
143
142
|
- LICENSE
|
144
143
|
files:
|
@@ -146,7 +145,6 @@ files:
|
|
146
145
|
- Gemfile
|
147
146
|
- LICENSE
|
148
147
|
- README.md
|
149
|
-
- README.rdoc
|
150
148
|
- Rakefile
|
151
149
|
- examples.rb
|
152
150
|
- lib/twilio-ruby.rb
|
data/README.rdoc
DELETED
File without changes
|