twilio 2.5.0 → 2.6.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.
- data/README.rdoc +4 -3
- data/Rakefile +1 -1
- data/VERSION.yml +2 -1
- data/lib/twilio/verb.rb +27 -27
- data/test/twilio/verb_test.rb +36 -36
- data/twilio.gemspec +6 -5
- metadata +3 -2
data/README.rdoc
CHANGED
@@ -28,9 +28,9 @@ For example, in a Ruby on Rails application, you could do the following inside a
|
|
28
28
|
|
29
29
|
and you can nest multiple verbs inside a block:
|
30
30
|
|
31
|
-
verb = Twilio::Verb.new {
|
32
|
-
say "The time is #{Time.now}"
|
33
|
-
hangup
|
31
|
+
verb = Twilio::Verb.new { |v|
|
32
|
+
v.say "The time is #{Time.now}"
|
33
|
+
v.hangup
|
34
34
|
}
|
35
35
|
verb.response
|
36
36
|
|
@@ -46,4 +46,5 @@ Copyright (c) 2009 Phil Misiowiec, Webficient LLC. See LICENSE for details.
|
|
46
46
|
|
47
47
|
== Contributors
|
48
48
|
|
49
|
+
Alex K Wolfe
|
49
50
|
Jonathan Rudenberg
|
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ begin
|
|
7
7
|
gem.summary = %Q{Twilio API Client}
|
8
8
|
gem.email = "github@webficient.com"
|
9
9
|
gem.homepage = "http://github.com/webficient/twilio"
|
10
|
-
gem.authors = ["Phil Misiowiec"]
|
10
|
+
gem.authors = ["Phil Misiowiec", "Alex K Wolfe"]
|
11
11
|
gem.add_dependency 'builder', '>= 2.1.2'
|
12
12
|
gem.add_dependency 'httparty', '>= 0.4.3'
|
13
13
|
end
|
data/VERSION.yml
CHANGED
data/lib/twilio/verb.rb
CHANGED
@@ -9,9 +9,9 @@ module Twilio
|
|
9
9
|
#
|
10
10
|
# But if you need to chain several verbs together, just wrap them in an instance block and call the 'response' attribute:
|
11
11
|
#
|
12
|
-
# verb = Twilio::Verb.new {
|
13
|
-
# dial '415-123-4567'
|
14
|
-
# redirect 'http://www.foo.com/nextInstructions'
|
12
|
+
# verb = Twilio::Verb.new { |v|
|
13
|
+
# v.dial '415-123-4567'
|
14
|
+
# v.redirect 'http://www.foo.com/nextInstructions'
|
15
15
|
# }
|
16
16
|
# verb.response
|
17
17
|
class Verb
|
@@ -31,7 +31,7 @@ module Twilio
|
|
31
31
|
|
32
32
|
if block_given?
|
33
33
|
@chain = true
|
34
|
-
@response = @xml.Response {
|
34
|
+
@response = @xml.Response { block.call(self) }
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -131,18 +131,18 @@ module Twilio
|
|
131
131
|
#
|
132
132
|
# Gather also lets you nest the Play, Say, and Pause verbs:
|
133
133
|
#
|
134
|
-
# verb = Twilio::Verb.new {
|
135
|
-
# gather(:action => '/process_gather', :method => 'GET) {
|
136
|
-
# say 'Please enter your account number followed by the pound sign'
|
134
|
+
# verb = Twilio::Verb.new { |v|
|
135
|
+
# v.gather(:action => '/process_gather', :method => 'GET) {
|
136
|
+
# v.say 'Please enter your account number followed by the pound sign'
|
137
137
|
# }
|
138
|
-
# say "We didn't receive any input. Goodbye!"
|
138
|
+
# v.say "We didn't receive any input. Goodbye!"
|
139
139
|
# }
|
140
140
|
# verb.response # represents the final xml output
|
141
141
|
def gather(*args, &block)
|
142
142
|
options = args.shift || {}
|
143
143
|
output {
|
144
144
|
if block_given?
|
145
|
-
@xml.Gather(options) { block.call
|
145
|
+
@xml.Gather(options) { block.call}
|
146
146
|
else
|
147
147
|
@xml.Gather(options)
|
148
148
|
end
|
@@ -185,11 +185,11 @@ module Twilio
|
|
185
185
|
#
|
186
186
|
# Twilio also supports an alternate form in which a Number object is nested inside Dial:
|
187
187
|
#
|
188
|
-
# verb = Twilio::Verb.new {
|
189
|
-
# dial {
|
190
|
-
# number '415-123-4567'
|
191
|
-
# number '415-123-4568'
|
192
|
-
# number '415-123-4569'
|
188
|
+
# verb = Twilio::Verb.new { |v|
|
189
|
+
# v.dial { |v|
|
190
|
+
# v.number '415-123-4567'
|
191
|
+
# v.number '415-123-4568'
|
192
|
+
# v.number '415-123-4569'
|
193
193
|
# }
|
194
194
|
# }
|
195
195
|
# verb.response # represents the final xml output
|
@@ -224,9 +224,9 @@ module Twilio
|
|
224
224
|
# Options (see http://www.twilio.com/docs/api_reference/TwiML/conference) are passed in as a hash
|
225
225
|
#
|
226
226
|
# Examples:
|
227
|
-
# verb = Twilio::Verb.new {
|
228
|
-
# dial {
|
229
|
-
# conference 'MyRoom', :muted => true
|
227
|
+
# verb = Twilio::Verb.new { |v|
|
228
|
+
# v.dial {
|
229
|
+
# v.conference 'MyRoom', :muted => true
|
230
230
|
# }
|
231
231
|
# }
|
232
232
|
# verb.response
|
@@ -253,10 +253,10 @@ module Twilio
|
|
253
253
|
# Options (see http://www.twilio.com/docs/api_reference/TwiML/pause) are passed in as a hash
|
254
254
|
#
|
255
255
|
# Examples:
|
256
|
-
# verb = Twilio::Verb.new {
|
257
|
-
# say 'greetings'
|
258
|
-
# pause :length => 2
|
259
|
-
# say 'have a nice day'
|
256
|
+
# verb = Twilio::Verb.new { |v|
|
257
|
+
# v.say 'greetings'
|
258
|
+
# v.pause :length => 2
|
259
|
+
# v.say 'have a nice day'
|
260
260
|
# }
|
261
261
|
# verb.response
|
262
262
|
def pause(*args)
|
@@ -270,9 +270,9 @@ module Twilio
|
|
270
270
|
# Options (see http://www.twilio.com/docs/api_reference/TwiML/redirect) are passed in as a hash
|
271
271
|
#
|
272
272
|
# Examples:
|
273
|
-
# verb = Twilio::Verb.new {
|
274
|
-
# dial '415-123-4567'
|
275
|
-
# redirect 'http://www.foo.com/nextInstructions'
|
273
|
+
# verb = Twilio::Verb.new { |v|
|
274
|
+
# v.dial '415-123-4567'
|
275
|
+
# v.redirect 'http://www.foo.com/nextInstructions'
|
276
276
|
# }
|
277
277
|
# verb.response
|
278
278
|
def redirect(*args)
|
@@ -301,9 +301,9 @@ module Twilio
|
|
301
301
|
#
|
302
302
|
# If your response is chained:
|
303
303
|
#
|
304
|
-
# verb = Twilio::Verb.new {
|
305
|
-
# say "The time is #{Time.now}"
|
306
|
-
# hangup
|
304
|
+
# verb = Twilio::Verb.new { |v|
|
305
|
+
# v.say "The time is #{Time.now}"
|
306
|
+
# v.hangup
|
307
307
|
# }
|
308
308
|
# verb.response
|
309
309
|
def hangup
|
data/test/twilio/verb_test.rb
CHANGED
@@ -28,19 +28,19 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
28
28
|
end
|
29
29
|
|
30
30
|
should "say 'hi' with pause and say 'bye'" do
|
31
|
-
verb = Twilio::Verb.new {
|
32
|
-
say 'hi', :loop => 1
|
33
|
-
pause
|
34
|
-
say 'bye'
|
31
|
+
verb = Twilio::Verb.new { |v|
|
32
|
+
v.say 'hi', :loop => 1
|
33
|
+
v.pause
|
34
|
+
v.say 'bye'
|
35
35
|
}
|
36
36
|
assert_match %r{<Say( loop="1"| language="en"| voice="man"){3}>hi</Say><Pause></Pause><Say( loop="1"| language="en"| voice="man"){3}>bye</Say>}, verb.response
|
37
37
|
end
|
38
38
|
|
39
39
|
should "say 'hi' with 2 second pause and say 'bye'" do
|
40
|
-
verb = Twilio::Verb.new {
|
41
|
-
say 'hi'
|
42
|
-
pause :length => 2
|
43
|
-
say 'bye'
|
40
|
+
verb = Twilio::Verb.new { |v|
|
41
|
+
v.say 'hi'
|
42
|
+
v.pause :length => 2
|
43
|
+
v.say 'bye'
|
44
44
|
}
|
45
45
|
assert_match %r{<Say( loop="1"| language="en"| voice="man"){3}>hi</Say><Pause length="2"/><Say( loop="1"| language="en"| voice="man"){3}>bye</Say>}, verb.response
|
46
46
|
end
|
@@ -92,21 +92,21 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
92
92
|
end
|
93
93
|
|
94
94
|
should "gather and say instructions" do
|
95
|
-
verb = Twilio::Verb.new {
|
96
|
-
gather {
|
97
|
-
say 'Please enter your account number followed by the pound sign'
|
95
|
+
verb = Twilio::Verb.new { |v|
|
96
|
+
v.gather {
|
97
|
+
v.say 'Please enter your account number followed by the pound sign'
|
98
98
|
}
|
99
|
-
say "We didn't receive any input. Goodbye!"
|
99
|
+
v.say "We didn't receive any input. Goodbye!"
|
100
100
|
}
|
101
101
|
assert_match %r{<Gather><Say( loop="1"| language="en"| voice="man"){3}>Please enter your account number followed by the pound sign</Say></Gather><Say( loop="1"| language="en"| voice="man"){3}>We didn't receive any input. Goodbye!</Say>}, verb.response
|
102
102
|
end
|
103
103
|
|
104
104
|
should "gather with timeout and say instructions" do
|
105
|
-
verb = Twilio::Verb.new {
|
106
|
-
gather(:timeout => 10) {
|
107
|
-
say 'Please enter your account number followed by the pound sign'
|
105
|
+
verb = Twilio::Verb.new { |v|
|
106
|
+
v.gather(:timeout => 10) {
|
107
|
+
v.say 'Please enter your account number followed by the pound sign'
|
108
108
|
}
|
109
|
-
say "We didn't receive any input. Goodbye!"
|
109
|
+
v.say "We didn't receive any input. Goodbye!"
|
110
110
|
}
|
111
111
|
assert_match %r{<Gather timeout="10"><Say( loop="1"| language="en"| voice="man"){3}>Please enter your account number followed by the pound sign</Say></Gather><Say( loop="1"| language="en"| voice="man"){3}>We didn't receive any input. Goodbye!</Say>}, verb.response
|
112
112
|
end
|
@@ -174,46 +174,46 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
174
174
|
end
|
175
175
|
|
176
176
|
should "dial with redirect" do
|
177
|
-
verb = Twilio::Verb.new {
|
178
|
-
dial '415-123-4567'
|
179
|
-
redirect 'http://www.foo.com/nextInstructions'
|
177
|
+
verb = Twilio::Verb.new { |v|
|
178
|
+
v.dial '415-123-4567'
|
179
|
+
v.redirect 'http://www.foo.com/nextInstructions'
|
180
180
|
}
|
181
181
|
assert_equal verb_response(:dial_with_redirect), verb.response
|
182
182
|
end
|
183
183
|
|
184
184
|
should "dial with number and send digits" do
|
185
|
-
verb = Twilio::Verb.new {
|
186
|
-
dial {
|
187
|
-
number('415-123-4567', :sendDigits => 'wwww1928')
|
185
|
+
verb = Twilio::Verb.new { |v|
|
186
|
+
v.dial {
|
187
|
+
v.number('415-123-4567', :sendDigits => 'wwww1928')
|
188
188
|
}
|
189
189
|
}
|
190
190
|
assert_equal verb_response(:dial_with_number_and_send_digits), verb.response
|
191
191
|
end
|
192
192
|
|
193
193
|
should "dial multiple numbers" do
|
194
|
-
verb = Twilio::Verb.new {
|
195
|
-
dial {
|
196
|
-
number '415-123-4567'
|
197
|
-
number '415-123-4568'
|
198
|
-
number '415-123-4569'
|
194
|
+
verb = Twilio::Verb.new { |v|
|
195
|
+
v.dial {
|
196
|
+
v.number '415-123-4567'
|
197
|
+
v.number '415-123-4568'
|
198
|
+
v.number '415-123-4569'
|
199
199
|
}
|
200
200
|
}
|
201
201
|
assert_equal verb_response(:dial_multiple_numbers), verb.response
|
202
202
|
end
|
203
203
|
|
204
204
|
should "dial a conference" do
|
205
|
-
verb = Twilio::Verb.new {
|
206
|
-
dial {
|
207
|
-
conference 'MyRoom'
|
205
|
+
verb = Twilio::Verb.new { |v|
|
206
|
+
v.dial {
|
207
|
+
v.conference 'MyRoom'
|
208
208
|
}
|
209
209
|
}
|
210
210
|
assert_equal verb_response(:dial_conference), verb.response
|
211
211
|
end
|
212
212
|
|
213
213
|
should "dial a muted conference" do
|
214
|
-
verb = Twilio::Verb.new {
|
215
|
-
dial {
|
216
|
-
conference 'MyRoom', :mute => :true
|
214
|
+
verb = Twilio::Verb.new { |v|
|
215
|
+
v.dial {
|
216
|
+
v.conference 'MyRoom', :mute => :true
|
217
217
|
}
|
218
218
|
}
|
219
219
|
assert_equal verb_response(:dial_muted_conference), verb.response
|
@@ -224,9 +224,9 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
224
224
|
end
|
225
225
|
|
226
226
|
should "say hi and hangup" do
|
227
|
-
verb = Twilio::Verb.new {
|
228
|
-
say 'hi'
|
229
|
-
hangup
|
227
|
+
verb = Twilio::Verb.new { |v|
|
228
|
+
v.say 'hi'
|
229
|
+
v.hangup
|
230
230
|
}
|
231
231
|
assert_match %r{<Say( loop="1"| language="en"| voice="man"){3}>hi</Say><Hangup/>},
|
232
232
|
verb.response
|
data/twilio.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{twilio}
|
8
|
-
s.version = "2.
|
8
|
+
s.version = "2.6.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Phil Misiowiec"]
|
12
|
-
s.date = %q{
|
11
|
+
s.authors = ["Phil Misiowiec", "Alex K Wolfe"]
|
12
|
+
s.date = %q{2010-02-11}
|
13
13
|
s.email = %q{github@webficient.com}
|
14
14
|
s.extra_rdoc_files = [
|
15
15
|
"LICENSE",
|
@@ -107,3 +107,4 @@ Gem::Specification.new do |s|
|
|
107
107
|
s.add_dependency(%q<httparty>, [">= 0.4.3"])
|
108
108
|
end
|
109
109
|
end
|
110
|
+
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phil Misiowiec
|
8
|
+
- Alex K Wolfe
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
12
|
|
12
|
-
date:
|
13
|
+
date: 2010-02-11 00:00:00 -08:00
|
13
14
|
default_executable:
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|