twilio-rb 1.0beta → 1.0beta2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +5 -3
- data/lib/railtie.rb +6 -2
- data/lib/twilio/call.rb +5 -4
- data/lib/twilio/finder.rb +8 -11
- data/lib/twilio/notification.rb +5 -4
- data/lib/twilio/sms.rb +6 -5
- data/lib/twilio.rb +1 -1
- metadata +28 -56
data/README.md
CHANGED
@@ -9,9 +9,11 @@ It offers an ActiveRecord style API, i.e. one that most Ruby developers are fami
|
|
9
9
|
|
10
10
|
## Installation
|
11
11
|
|
12
|
-
The library has been packaged as a gem and is available from rubygems.org
|
12
|
+
The library has been packaged as a gem and is available from rubygems.org. The version that this readme pertains to is 1.0beta. To install use the `--pre` flag
|
13
13
|
|
14
|
-
<pre>gem install twilio-rb</pre>
|
14
|
+
<pre>gem install twilio-rb --pre</pre>
|
15
|
+
|
16
|
+
Please use the Github issue tracker to report any issues or bugs you uncover.
|
15
17
|
|
16
18
|
## Usage
|
17
19
|
|
@@ -21,7 +23,7 @@ Require the library in your script as
|
|
21
23
|
|
22
24
|
or using bundler:
|
23
25
|
|
24
|
-
<pre>gem 'twilio-rb', '1.
|
26
|
+
<pre>gem 'twilio-rb', '1.0beta', :require => 'twilio'</pre>
|
25
27
|
|
26
28
|
## Configuration
|
27
29
|
|
data/lib/railtie.rb
CHANGED
@@ -5,10 +5,14 @@ module Twilio
|
|
5
5
|
class Template
|
6
6
|
module Handlers
|
7
7
|
class TwiML < ::ActionView::Template::Handler
|
8
|
+
self.default_format = 'text/xml'
|
8
9
|
include ::ActionView::Template::Handlers::Compilable
|
9
10
|
|
10
11
|
def compile(template)
|
11
|
-
|
12
|
+
<<-EOS
|
13
|
+
controller.content_type = 'text/xml'
|
14
|
+
Twilio::TwiML.build {|res| #{template.source} }
|
15
|
+
EOS
|
12
16
|
end
|
13
17
|
end
|
14
18
|
end
|
@@ -19,4 +23,4 @@ module Twilio
|
|
19
23
|
::Mime::Type.register_alias 'text/xml', :voice
|
20
24
|
end
|
21
25
|
end
|
22
|
-
end
|
26
|
+
end
|
data/lib/twilio/call.rb
CHANGED
@@ -15,18 +15,19 @@ module Twilio
|
|
15
15
|
end
|
16
16
|
|
17
17
|
private
|
18
|
-
def
|
19
|
-
opts.map do |k,v|
|
18
|
+
def prepare_params(opts) # :nodoc:
|
19
|
+
pairs = opts.map do |k,v|
|
20
20
|
if [:started_before, :started_after, :ended_before, :ended_after].include? k
|
21
21
|
k = k.to_s
|
22
22
|
# Fancy schmancy-ness to handle Twilio <= URI operator for dates
|
23
23
|
comparator = k =~ /before$/ ? '<=' : '>='
|
24
24
|
delineator = k =~ /started/ ? 'Start' : 'End'
|
25
|
-
delineator << "Time" << comparator << v.to_s
|
25
|
+
CGI.escape(delineator << "Time" << comparator << v.to_s)
|
26
26
|
else
|
27
|
-
"#{k.to_s.camelize}=#{v}"
|
27
|
+
"#{k.to_s.camelize}=#{CGI.escape v.to_s}"
|
28
28
|
end
|
29
29
|
end
|
30
|
+
"?#{pairs.join('&')}"
|
30
31
|
end
|
31
32
|
end
|
32
33
|
|
data/lib/twilio/finder.rb
CHANGED
@@ -5,21 +5,17 @@ module Twilio
|
|
5
5
|
hash = res.parsed_response
|
6
6
|
if (200..299).include? res.code
|
7
7
|
hash['api_version'] = hash['api_version'].to_s # api_version parsed as a date by http_party
|
8
|
-
new hash
|
8
|
+
new hash
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
def count(opts={})
|
13
|
-
|
14
|
-
params = "?#{URI.encode(opts.join '&')}" unless opts.empty?
|
15
|
-
|
13
|
+
params = prepare_params opts if opts.any?
|
16
14
|
get("/Accounts/#{Twilio::ACCOUNT_SID}/#{resource_fragment}.json#{params}").parsed_response['total']
|
17
15
|
end
|
18
16
|
|
19
17
|
def all(opts={})
|
20
|
-
|
21
|
-
params = "?#{URI.encode(opts.join '&')}" unless opts.empty?
|
22
|
-
|
18
|
+
params = prepare_params opts if opts.any?
|
23
19
|
handle_response get "/Accounts/#{Twilio::ACCOUNT_SID}/#{resource_fragment}.json#{params}"
|
24
20
|
end
|
25
21
|
|
@@ -31,17 +27,18 @@ module Twilio
|
|
31
27
|
resource = klass_name == 'SMS' ? "#{klass_name}/Messages" : klass_name.pluralize
|
32
28
|
end
|
33
29
|
|
34
|
-
def
|
35
|
-
opts.map do |k,v|
|
30
|
+
def prepare_params(opts) # :nodoc:
|
31
|
+
pairs = opts.map do |k,v|
|
36
32
|
if [:updated_before, :created_before, :updated_after, :created_after].include? k
|
37
33
|
k = k.to_s
|
38
34
|
# Fancy schmancy-ness to handle Twilio <= URI operator for dates
|
39
35
|
comparator = k =~ /before$/ ? '<=' : '>='
|
40
|
-
"Date" << k.gsub(/\_\w+$/, '').capitalize << comparator << v.to_s
|
36
|
+
CGI.escape("Date" << k.gsub(/\_\w+$/, '').capitalize << comparator << v.to_s)
|
41
37
|
else
|
42
|
-
"#{k.to_s.camelize}=#{v}"
|
38
|
+
"#{k.to_s.camelize}=#{CGI.escape v.to_s}"
|
43
39
|
end
|
44
40
|
end
|
41
|
+
"?#{pairs.join('&')}"
|
45
42
|
end
|
46
43
|
|
47
44
|
def handle_response(res) # :nodoc:
|
data/lib/twilio/notification.rb
CHANGED
@@ -6,17 +6,18 @@ module Twilio
|
|
6
6
|
|
7
7
|
class << self
|
8
8
|
private
|
9
|
-
def
|
10
|
-
opts.map do |k,v|
|
9
|
+
def prepare_params(opts) # :nodoc:
|
10
|
+
pairs = opts.map do |k,v|
|
11
11
|
if [:created_before, :created_after].include? k
|
12
12
|
k = k.to_s
|
13
13
|
# Fancy schmancy-ness to handle Twilio <= URI operator for dates
|
14
14
|
comparator = k =~ /before$/ ? '<=' : '>='
|
15
|
-
"MessageDate" << comparator << v.to_s
|
15
|
+
CGI.escape("MessageDate" << comparator << v.to_s)
|
16
16
|
else
|
17
|
-
"#{k.to_s.camelize}=#{v}"
|
17
|
+
"#{k.to_s.camelize}=#{CGI.escape v.to_s}"
|
18
18
|
end
|
19
19
|
end
|
20
|
+
"?#{pairs.join('&')}"
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
data/lib/twilio/sms.rb
CHANGED
@@ -6,17 +6,18 @@ module Twilio
|
|
6
6
|
|
7
7
|
class << self
|
8
8
|
private
|
9
|
-
def
|
10
|
-
opts.map do |k,v|
|
9
|
+
def prepare_params(opts) # :nodoc:
|
10
|
+
pairs = opts.map do |k,v|
|
11
11
|
if [:created_before, :created_after, :sent_before, :sent_after].include? k
|
12
12
|
k = k.to_s
|
13
13
|
# Fancy schmancy-ness to handle Twilio <= URI operator for dates
|
14
|
-
comparator = k =~ /before$/ ? '<=' : '>='
|
15
|
-
"DateSent" << comparator << v.to_s
|
14
|
+
comparator = k =~ /before$/ ? '<=' : '>='
|
15
|
+
URI.encode("DateSent" << comparator << v.to_s)
|
16
16
|
else
|
17
|
-
"#{k.to_s.camelize}=#{v}"
|
17
|
+
"#{k.to_s.camelize}=#{CGI.escape v.to_s}"
|
18
18
|
end
|
19
19
|
end
|
20
|
+
"?#{pairs.join('&')}"
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
data/lib/twilio.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
%w<rubygems active_support cgi yajl yajl/json_gem httparty builder>.each { |lib| require lib }
|
1
|
+
%w<rubygems active_support active_support/inflector cgi yajl yajl/json_gem httparty builder>.each { |lib| require lib }
|
2
2
|
%w<resource finder persistable deletable>.each { |lib| require File.join(File.dirname(__FILE__), 'twilio', "#{lib}.rb") }
|
3
3
|
|
4
4
|
module Twilio
|
metadata
CHANGED
@@ -1,11 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 1
|
7
|
-
- 0beta
|
8
|
-
version: 1.0beta
|
4
|
+
prerelease: 3
|
5
|
+
version: 1.0beta2
|
9
6
|
platform: ruby
|
10
7
|
authors:
|
11
8
|
- Stevie Graham
|
@@ -13,7 +10,7 @@ autorequire:
|
|
13
10
|
bindir: bin
|
14
11
|
cert_chain: []
|
15
12
|
|
16
|
-
date:
|
13
|
+
date: 2011-06-08 00:00:00 +01:00
|
17
14
|
default_executable:
|
18
15
|
dependencies:
|
19
16
|
- !ruby/object:Gem::Dependency
|
@@ -24,103 +21,86 @@ dependencies:
|
|
24
21
|
requirements:
|
25
22
|
- - ">="
|
26
23
|
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 3
|
29
|
-
- 0
|
30
|
-
- 0
|
31
24
|
version: 3.0.0
|
32
25
|
type: :runtime
|
33
26
|
version_requirements: *id001
|
34
27
|
- !ruby/object:Gem::Dependency
|
35
|
-
name:
|
28
|
+
name: i18n
|
36
29
|
prerelease: false
|
37
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ~>
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 0.5.0
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: yajl-ruby
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
38
42
|
none: false
|
39
43
|
requirements:
|
40
44
|
- - ">="
|
41
45
|
- !ruby/object:Gem::Version
|
42
|
-
segments:
|
43
|
-
- 0
|
44
|
-
- 7
|
45
|
-
- 7
|
46
46
|
version: 0.7.7
|
47
47
|
type: :runtime
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *id003
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: httparty
|
51
51
|
prerelease: false
|
52
|
-
requirement: &
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ">="
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
- 6
|
60
|
-
- 1
|
61
57
|
version: 0.6.1
|
62
58
|
type: :runtime
|
63
|
-
version_requirements: *
|
59
|
+
version_requirements: *id004
|
64
60
|
- !ruby/object:Gem::Dependency
|
65
61
|
name: builder
|
66
62
|
prerelease: false
|
67
|
-
requirement: &
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
68
64
|
none: false
|
69
65
|
requirements:
|
70
66
|
- - ">="
|
71
67
|
- !ruby/object:Gem::Version
|
72
|
-
segments:
|
73
|
-
- 2
|
74
|
-
- 1
|
75
|
-
- 2
|
76
68
|
version: 2.1.2
|
77
69
|
type: :runtime
|
78
|
-
version_requirements: *
|
70
|
+
version_requirements: *id005
|
79
71
|
- !ruby/object:Gem::Dependency
|
80
72
|
name: webmock
|
81
73
|
prerelease: false
|
82
|
-
requirement: &
|
74
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
83
75
|
none: false
|
84
76
|
requirements:
|
85
77
|
- - ">="
|
86
78
|
- !ruby/object:Gem::Version
|
87
|
-
segments:
|
88
|
-
- 1
|
89
|
-
- 6
|
90
|
-
- 1
|
91
79
|
version: 1.6.1
|
92
80
|
type: :development
|
93
|
-
version_requirements: *
|
81
|
+
version_requirements: *id006
|
94
82
|
- !ruby/object:Gem::Dependency
|
95
83
|
name: rspec
|
96
84
|
prerelease: false
|
97
|
-
requirement: &
|
85
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
98
86
|
none: false
|
99
87
|
requirements:
|
100
88
|
- - ">="
|
101
89
|
- !ruby/object:Gem::Version
|
102
|
-
segments:
|
103
|
-
- 2
|
104
|
-
- 2
|
105
|
-
- 0
|
106
90
|
version: 2.2.0
|
107
91
|
type: :development
|
108
|
-
version_requirements: *
|
92
|
+
version_requirements: *id007
|
109
93
|
- !ruby/object:Gem::Dependency
|
110
94
|
name: mocha
|
111
95
|
prerelease: false
|
112
|
-
requirement: &
|
96
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
113
97
|
none: false
|
114
98
|
requirements:
|
115
99
|
- - ">="
|
116
100
|
- !ruby/object:Gem::Version
|
117
|
-
segments:
|
118
|
-
- 0
|
119
|
-
- 9
|
120
|
-
- 10
|
121
101
|
version: 0.9.10
|
122
102
|
type: :development
|
123
|
-
version_requirements: *
|
103
|
+
version_requirements: *id008
|
124
104
|
description: A nice Ruby wrapper for the Twilio REST API
|
125
105
|
email: sjtgraham@mac.com
|
126
106
|
executables: []
|
@@ -151,7 +131,7 @@ files:
|
|
151
131
|
- lib/twilio/transcription.rb
|
152
132
|
- lib/twilio/twiml.rb
|
153
133
|
- lib/twilio.rb
|
154
|
-
has_rdoc:
|
134
|
+
has_rdoc: true
|
155
135
|
homepage: http://github.com/stevegraham/twilio-rb
|
156
136
|
licenses: []
|
157
137
|
|
@@ -165,25 +145,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
165
145
|
requirements:
|
166
146
|
- - ">="
|
167
147
|
- !ruby/object:Gem::Version
|
168
|
-
segments:
|
169
|
-
- 1
|
170
|
-
- 8
|
171
|
-
- 7
|
172
148
|
version: 1.8.7
|
173
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
150
|
none: false
|
175
151
|
requirements:
|
176
152
|
- - ">"
|
177
153
|
- !ruby/object:Gem::Version
|
178
|
-
segments:
|
179
|
-
- 1
|
180
|
-
- 3
|
181
|
-
- 1
|
182
154
|
version: 1.3.1
|
183
155
|
requirements: []
|
184
156
|
|
185
157
|
rubyforge_project:
|
186
|
-
rubygems_version: 1.
|
158
|
+
rubygems_version: 1.5.2
|
187
159
|
signing_key:
|
188
160
|
specification_version: 3
|
189
161
|
summary: Interact with the Twilio API in a nice Ruby way.
|