twilio 2.3.0 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/Rakefile +2 -3
- data/VERSION.yml +1 -1
- data/lib/twilio.rb +0 -6
- data/test/fixtures/yml/verb_responses.yml +0 -42
- data/test/test_helper.rb +1 -6
- data/test/twilio/verb_test.rb +29 -13
- data/twilio.gemspec +100 -0
- metadata +7 -5
data/Rakefile
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'rake'
|
3
2
|
|
4
3
|
begin
|
@@ -9,8 +8,8 @@ begin
|
|
9
8
|
gem.email = "github@webficient.com"
|
10
9
|
gem.homepage = "http://github.com/webficient/twilio"
|
11
10
|
gem.authors = ["Phil Misiowiec"]
|
12
|
-
gem.add_dependency 'builder'
|
13
|
-
gem.add_dependency 'httparty'
|
11
|
+
gem.add_dependency 'builder', '>= 2.1.2'
|
12
|
+
gem.add_dependency 'httparty', '>= 0.4.3'
|
14
13
|
end
|
15
14
|
rescue LoadError
|
16
15
|
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
data/VERSION.yml
CHANGED
data/lib/twilio.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
$:.unshift(File.dirname(__FILE__))
|
2
|
-
|
3
1
|
#--
|
4
2
|
# Copyright (c) 2009 Phil Misiowiec, phil@webficient.com
|
5
3
|
#
|
@@ -23,12 +21,8 @@ $:.unshift(File.dirname(__FILE__))
|
|
23
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
24
22
|
#++
|
25
23
|
|
26
|
-
require 'rubygems'
|
27
|
-
gem 'httparty', '>= 0.4.3'
|
28
24
|
require 'httparty'
|
29
|
-
gem 'builder', '>= 2.1.2'
|
30
25
|
require 'builder'
|
31
|
-
|
32
26
|
require 'twilio/twilio_object'
|
33
27
|
require 'twilio/account'
|
34
28
|
require 'twilio/call'
|
@@ -1,30 +1,3 @@
|
|
1
|
-
say_hi:
|
2
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Say loop="1" language="en" voice="man">hi</Say></Response>
|
3
|
-
|
4
|
-
say_hi_with_female_voice:
|
5
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Say loop="1" language="en" voice="woman">hi</Say></Response>
|
6
|
-
|
7
|
-
say_hi_in_spanish_with_female_voice:
|
8
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Say loop="1" language="es" voice="woman">hola</Say></Response>
|
9
|
-
|
10
|
-
say_hi_three_times:
|
11
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Say loop="3" language="en" voice="man">hi</Say></Response>
|
12
|
-
|
13
|
-
say_hi_three_times_with_pause:
|
14
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Say language="en" voice="man">hi</Say><Pause/><Say language="en" voice="man">hi</Say><Pause/><Say language="en" voice="man">hi</Say></Response>
|
15
|
-
|
16
|
-
say_hi_with_pause:
|
17
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Say loop="1" language="en" voice="man">hi</Say><Pause/></Response>
|
18
|
-
|
19
|
-
say_hi_with_pause_and_say_bye:
|
20
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Say loop="1" language="en" voice="man">hi</Say><Pause></Pause><Say loop="1" language="en" voice="man">bye</Say></Response>
|
21
|
-
|
22
|
-
say_hi_with_2_second_pause_and_say_bye:
|
23
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Say loop="1" language="en" voice="man">hi</Say><Pause length="2"/><Say loop="1" language="en" voice="man">bye</Say></Response>
|
24
|
-
|
25
|
-
say_hi_and_hangup:
|
26
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Say loop="1" language="en" voice="man">hi</Say><Hangup/></Response>
|
27
|
-
|
28
1
|
play_mp3:
|
29
2
|
response: <?xml version="1.0" encoding="UTF-8"?><Response><Play loop="1">http://foo.com/cowbell.mp3</Play></Response>
|
30
3
|
|
@@ -52,15 +25,6 @@ gather_with_finish_key:
|
|
52
25
|
gather_with_num_digits:
|
53
26
|
response: <?xml version="1.0" encoding="UTF-8"?><Response><Gather numDigits="5"/></Response>
|
54
27
|
|
55
|
-
gather_with_all_options_set:
|
56
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Gather finishOnKey="*" action="http://foobar.com" method="GET" numDigits="5" timeout="10"/></Response>
|
57
|
-
|
58
|
-
gather_and_say_instructions:
|
59
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Gather><Say loop="1" language="en" voice="man">Please enter your account number followed by the pound sign</Say></Gather><Say loop="1" language="en" voice="man">We didn't receive any input. Goodbye!</Say></Response>
|
60
|
-
|
61
|
-
gather_with_timeout_and_say_instructions:
|
62
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Gather timeout="10"><Say loop="1" language="en" voice="man">Please enter your account number followed by the pound sign</Say></Gather><Say loop="1" language="en" voice="man">We didn't receive any input. Goodbye!</Say></Response>
|
63
|
-
|
64
28
|
record:
|
65
29
|
response: <?xml version="1.0" encoding="UTF-8"?><Response><Record></Record></Response>
|
66
30
|
|
@@ -78,9 +42,6 @@ record_with_finish_key:
|
|
78
42
|
|
79
43
|
record_with_max_length:
|
80
44
|
response: <?xml version="1.0" encoding="UTF-8"?><Response><Record maxLength="1800"/></Response>
|
81
|
-
|
82
|
-
record_with_transcribe:
|
83
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Record transcribe="true" transcribeCallback="/handle_transcribe"/></Response>
|
84
45
|
|
85
46
|
dial:
|
86
47
|
response: <?xml version="1.0" encoding="UTF-8"?><Response><Dial>415-123-4567</Dial></Response>
|
@@ -103,9 +64,6 @@ dial_with_time_limit:
|
|
103
64
|
dial_with_caller_id:
|
104
65
|
response: <?xml version="1.0" encoding="UTF-8"?><Response><Dial callerId="858-987-6543">415-123-4567</Dial></Response>
|
105
66
|
|
106
|
-
dial_with_timeout_and_caller_id:
|
107
|
-
response: <?xml version="1.0" encoding="UTF-8"?><Response><Dial callerId="858-987-6543" timeout="10">415-123-4567</Dial></Response>
|
108
|
-
|
109
67
|
dial_with_redirect:
|
110
68
|
response: <?xml version="1.0" encoding="UTF-8"?><Response><Dial>415-123-4567</Dial><Redirect>http://www.foo.com/nextInstructions</Redirect></Response>
|
111
69
|
|
data/test/test_helper.rb
CHANGED
@@ -1,16 +1,11 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'test/unit'
|
3
2
|
require 'fakeweb'
|
4
3
|
require 'shoulda'
|
5
|
-
require 'matchy'
|
6
4
|
require 'yaml'
|
5
|
+
require 'twilio'
|
7
6
|
|
8
7
|
FakeWeb.allow_net_connect = false
|
9
8
|
|
10
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
11
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
12
|
-
require 'twilio'
|
13
|
-
|
14
9
|
class Test::Unit::TestCase #:nodoc: all
|
15
10
|
end
|
16
11
|
|
data/test/twilio/verb_test.rb
CHANGED
@@ -3,23 +3,28 @@ require File.dirname(__FILE__) + '/../test_helper'
|
|
3
3
|
class VerbTest < Test::Unit::TestCase #:nodoc: all
|
4
4
|
context "A Twilio Verb" do
|
5
5
|
should "say 'hi'" do
|
6
|
-
|
6
|
+
assert_match %r{<Say( loop="1"| language="en"| voice="man"){3}>hi</Say>},
|
7
|
+
Twilio::Verb.say('hi')
|
7
8
|
end
|
8
9
|
|
9
10
|
should "say 'hi' with female voice" do
|
10
|
-
|
11
|
+
assert_match %r{<Say( loop="1"| language="en"| voice="woman"){3}>hi</Say>},
|
12
|
+
Twilio::Verb.say('hi', :voice => 'woman')
|
11
13
|
end
|
12
14
|
|
13
15
|
should "say 'hola' in Spanish with female voice" do
|
14
|
-
|
16
|
+
assert_match %r{<Say( loop="1"| language="es"| voice="woman"){3}>hola</Say>},
|
17
|
+
Twilio::Verb.say('hola', {:voice => 'woman', :language => 'es'})
|
15
18
|
end
|
16
19
|
|
17
20
|
should "say 'hi' three times" do
|
18
|
-
|
21
|
+
assert_match %r{<Say( loop="3"| language="en"| voice="man"){3}>hi</Say>},
|
22
|
+
Twilio::Verb.say('hi', :loop => 3)
|
19
23
|
end
|
20
24
|
|
21
25
|
should "say 'hi' three times with pause" do
|
22
|
-
|
26
|
+
assert_match %r{<Say( language="en"| voice="man"){2}>hi</Say><Pause/><Say( language="en"| voice="man"){2}>hi</Say><Pause/><Say( language="en"| voice="man"){2}>hi</Say>},
|
27
|
+
Twilio::Verb.say('hi', :loop => 3, :pause => true)
|
23
28
|
end
|
24
29
|
|
25
30
|
should "say 'hi' with pause and say 'bye'" do
|
@@ -28,7 +33,7 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
28
33
|
v.pause
|
29
34
|
v.say('bye')
|
30
35
|
}
|
31
|
-
|
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
|
32
37
|
end
|
33
38
|
|
34
39
|
should "say 'hi' with 2 second pause and say 'bye'" do
|
@@ -37,7 +42,7 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
37
42
|
v.pause(:length => 2)
|
38
43
|
v.say('bye')
|
39
44
|
}
|
40
|
-
|
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
|
41
46
|
end
|
42
47
|
|
43
48
|
should "play mp3 response" do
|
@@ -77,7 +82,12 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
77
82
|
end
|
78
83
|
|
79
84
|
should "gather with all options set" do
|
80
|
-
|
85
|
+
verb_response = Twilio::Verb.gather :action => 'http://foobar.com',
|
86
|
+
:finishOnKey => '*',
|
87
|
+
:method => 'GET',
|
88
|
+
:numDigits => 5,
|
89
|
+
:timeout => 10
|
90
|
+
assert_match %r{<Gather( finishOnKey="\*"| action="http://foobar.com"| method="GET"| numDigits="5"| timeout="10"){5}/>}, verb_response
|
81
91
|
end
|
82
92
|
|
83
93
|
should "gather and say instructions" do
|
@@ -87,7 +97,7 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
87
97
|
}
|
88
98
|
v.say("We didn't receive any input. Goodbye!")
|
89
99
|
}
|
90
|
-
|
100
|
+
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
|
91
101
|
end
|
92
102
|
|
93
103
|
should "gather with timeout and say instructions" do
|
@@ -97,7 +107,7 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
97
107
|
}
|
98
108
|
v.say("We didn't receive any input. Goodbye!")
|
99
109
|
}
|
100
|
-
|
110
|
+
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
|
101
111
|
end
|
102
112
|
|
103
113
|
should "record" do
|
@@ -125,7 +135,8 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
125
135
|
end
|
126
136
|
|
127
137
|
should "record with transcribe" do
|
128
|
-
|
138
|
+
assert_match %r{<Record( transcribe="true"| transcribeCallback="/handle_transcribe"){2}/>},
|
139
|
+
Twilio::Verb.record(:transcribe => true, :transcribeCallback => '/handle_transcribe')
|
129
140
|
end
|
130
141
|
|
131
142
|
should "dial" do
|
@@ -157,7 +168,11 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
157
168
|
end
|
158
169
|
|
159
170
|
should "dial with timeout and caller id" do
|
160
|
-
|
171
|
+
assert_match %r{<Dial( timeout="10"| callerId="858-987-6543"){2}>415-123-4567</Dial>},
|
172
|
+
Twilio::Verb.dial('415-123-4567', {
|
173
|
+
:timeout => 10,
|
174
|
+
:callerId => '858-987-6543' }
|
175
|
+
)
|
161
176
|
end
|
162
177
|
|
163
178
|
should "dial with redirect" do
|
@@ -197,7 +212,8 @@ class VerbTest < Test::Unit::TestCase #:nodoc: all
|
|
197
212
|
v.say('hi')
|
198
213
|
v.hangup
|
199
214
|
}
|
200
|
-
|
215
|
+
assert_match %r{<Say( loop="1"| language="en"| voice="man"){3}>hi</Say><Hangup/>},
|
216
|
+
verb.response
|
201
217
|
end
|
202
218
|
end
|
203
219
|
|
data/twilio.gemspec
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{twilio}
|
8
|
+
s.version = "2.4.0"
|
9
|
+
|
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{2009-09-03}
|
13
|
+
s.email = %q{github@webficient.com}
|
14
|
+
s.extra_rdoc_files = [
|
15
|
+
"LICENSE",
|
16
|
+
"README.rdoc"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".gitignore",
|
20
|
+
"LICENSE",
|
21
|
+
"README.rdoc",
|
22
|
+
"Rakefile",
|
23
|
+
"VERSION.yml",
|
24
|
+
"lib/twilio.rb",
|
25
|
+
"lib/twilio/account.rb",
|
26
|
+
"lib/twilio/call.rb",
|
27
|
+
"lib/twilio/connection.rb",
|
28
|
+
"lib/twilio/incoming_phone_number.rb",
|
29
|
+
"lib/twilio/local_phone_number.rb",
|
30
|
+
"lib/twilio/notification.rb",
|
31
|
+
"lib/twilio/outgoing_caller_id.rb",
|
32
|
+
"lib/twilio/recording.rb",
|
33
|
+
"lib/twilio/toll_free_phone_number.rb",
|
34
|
+
"lib/twilio/twilio_object.rb",
|
35
|
+
"lib/twilio/verb.rb",
|
36
|
+
"test/fixtures/xml/account.xml",
|
37
|
+
"test/fixtures/xml/account_renamed.xml",
|
38
|
+
"test/fixtures/xml/call.xml",
|
39
|
+
"test/fixtures/xml/call_new.xml",
|
40
|
+
"test/fixtures/xml/calls.xml",
|
41
|
+
"test/fixtures/xml/incoming_phone_number.xml",
|
42
|
+
"test/fixtures/xml/incoming_phone_numbers.xml",
|
43
|
+
"test/fixtures/xml/notification.xml",
|
44
|
+
"test/fixtures/xml/notifications.xml",
|
45
|
+
"test/fixtures/xml/outgoing_caller_id.xml",
|
46
|
+
"test/fixtures/xml/outgoing_caller_id_new.xml",
|
47
|
+
"test/fixtures/xml/outgoing_caller_ids.xml",
|
48
|
+
"test/fixtures/xml/recording.xml",
|
49
|
+
"test/fixtures/xml/recordings.xml",
|
50
|
+
"test/fixtures/xml/transcription.xml",
|
51
|
+
"test/fixtures/xml/transcriptions.xml",
|
52
|
+
"test/fixtures/yml/verb_responses.yml",
|
53
|
+
"test/test_helper.rb",
|
54
|
+
"test/twilio/account_test.rb",
|
55
|
+
"test/twilio/call_test.rb",
|
56
|
+
"test/twilio/connection_test.rb",
|
57
|
+
"test/twilio/incoming_phone_number_test.rb",
|
58
|
+
"test/twilio/local_phone_number_test.rb",
|
59
|
+
"test/twilio/notification_test.rb",
|
60
|
+
"test/twilio/outgoing_caller_id_test.rb",
|
61
|
+
"test/twilio/recording_test.rb",
|
62
|
+
"test/twilio/toll_free_phone_number_test.rb",
|
63
|
+
"test/twilio/verb_test.rb",
|
64
|
+
"twilio.gemspec"
|
65
|
+
]
|
66
|
+
s.homepage = %q{http://github.com/webficient/twilio}
|
67
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
68
|
+
s.require_paths = ["lib"]
|
69
|
+
s.rubygems_version = %q{1.3.5}
|
70
|
+
s.summary = %q{Twilio API Client}
|
71
|
+
s.test_files = [
|
72
|
+
"test/test_helper.rb",
|
73
|
+
"test/twilio/account_test.rb",
|
74
|
+
"test/twilio/call_test.rb",
|
75
|
+
"test/twilio/connection_test.rb",
|
76
|
+
"test/twilio/incoming_phone_number_test.rb",
|
77
|
+
"test/twilio/local_phone_number_test.rb",
|
78
|
+
"test/twilio/notification_test.rb",
|
79
|
+
"test/twilio/outgoing_caller_id_test.rb",
|
80
|
+
"test/twilio/recording_test.rb",
|
81
|
+
"test/twilio/toll_free_phone_number_test.rb",
|
82
|
+
"test/twilio/verb_test.rb"
|
83
|
+
]
|
84
|
+
|
85
|
+
if s.respond_to? :specification_version then
|
86
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
87
|
+
s.specification_version = 3
|
88
|
+
|
89
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
90
|
+
s.add_runtime_dependency(%q<builder>, [">= 2.1.2"])
|
91
|
+
s.add_runtime_dependency(%q<httparty>, [">= 0.4.3"])
|
92
|
+
else
|
93
|
+
s.add_dependency(%q<builder>, [">= 2.1.2"])
|
94
|
+
s.add_dependency(%q<httparty>, [">= 0.4.3"])
|
95
|
+
end
|
96
|
+
else
|
97
|
+
s.add_dependency(%q<builder>, [">= 2.1.2"])
|
98
|
+
s.add_dependency(%q<httparty>, [">= 0.4.3"])
|
99
|
+
end
|
100
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phil Misiowiec
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-09-03 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 2.1.2
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: httparty
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.4.3
|
34
34
|
version:
|
35
35
|
description:
|
36
36
|
email: github@webficient.com
|
@@ -42,6 +42,7 @@ extra_rdoc_files:
|
|
42
42
|
- LICENSE
|
43
43
|
- README.rdoc
|
44
44
|
files:
|
45
|
+
- .gitignore
|
45
46
|
- LICENSE
|
46
47
|
- README.rdoc
|
47
48
|
- Rakefile
|
@@ -86,6 +87,7 @@ files:
|
|
86
87
|
- test/twilio/recording_test.rb
|
87
88
|
- test/twilio/toll_free_phone_number_test.rb
|
88
89
|
- test/twilio/verb_test.rb
|
90
|
+
- twilio.gemspec
|
89
91
|
has_rdoc: true
|
90
92
|
homepage: http://github.com/webficient/twilio
|
91
93
|
licenses: []
|
@@ -112,7 +114,7 @@ requirements: []
|
|
112
114
|
rubyforge_project:
|
113
115
|
rubygems_version: 1.3.5
|
114
116
|
signing_key:
|
115
|
-
specification_version:
|
117
|
+
specification_version: 3
|
116
118
|
summary: Twilio API Client
|
117
119
|
test_files:
|
118
120
|
- test/test_helper.rb
|