twilio-rb 1.0beta → 1.0beta2
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.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.
|