twilio-rb 2.2.1 → 2.2.2
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 +3 -0
- data/lib/twilio-rb.rb +0 -10
- data/lib/twilio/available_phone_number.rb +1 -1
- data/lib/twilio/capability.rb +1 -1
- data/lib/twilio/config.rb +24 -3
- data/lib/twilio/finder.rb +3 -3
- data/lib/twilio/persistable.rb +1 -1
- data/lib/twilio/request_filter.rb +1 -1
- data/lib/twilio/resource.rb +2 -1
- data/lib/twilio/sandbox.rb +1 -1
- metadata +80 -25
data/README.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
[](https://travis-ci.org/stevegraham/twilio-rb)
|
2
|
+
|
1
3
|
# Twilio.rb
|
2
4
|
|
3
5
|
Interact with the Twilio API in a nice Ruby way.
|
@@ -396,3 +398,4 @@ A recording resource instance has an extra instance method: `#mp3` this returns
|
|
396
398
|
* Aaron Lerch
|
397
399
|
* Joël Franusic
|
398
400
|
* Mark Burns
|
401
|
+
* Alex Sharp
|
data/lib/twilio-rb.rb
CHANGED
@@ -6,16 +6,6 @@ module Twilio
|
|
6
6
|
APIError = Class.new StandardError
|
7
7
|
ConfigurationError = Class.new StandardError
|
8
8
|
InvalidStateError = Class.new StandardError
|
9
|
-
|
10
|
-
class << self
|
11
|
-
def const_missing(const_name)
|
12
|
-
if [:ACCOUNT_SID, :AUTH_TOKEN].include? const_name
|
13
|
-
raise Twilio::ConfigurationError.new "Cannot complete request. Please set #{const_name.to_s.downcase} with Twilio::Config.setup first!"
|
14
|
-
else
|
15
|
-
super
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
9
|
end
|
20
10
|
|
21
11
|
Dir[File.join(File.dirname(__FILE__), 'twilio', '*.rb')].each { |lib| require lib }
|
@@ -10,7 +10,7 @@ module Twilio
|
|
10
10
|
number_type = opts.delete('TollFree') ? 'TollFree' : 'Local'
|
11
11
|
params = { :query => opts } if opts.any?
|
12
12
|
|
13
|
-
handle_response get "/Accounts/#{Twilio::
|
13
|
+
handle_response get "/Accounts/#{Twilio::Config.account_sid}/AvailablePhoneNumbers/#{country_code}/#{number_type}.json", params
|
14
14
|
end
|
15
15
|
|
16
16
|
private :new
|
data/lib/twilio/capability.rb
CHANGED
data/lib/twilio/config.rb
CHANGED
@@ -1,13 +1,34 @@
|
|
1
|
-
|
1
|
+
|
2
|
+
|
3
|
+
module Twilio
|
2
4
|
module Config
|
5
|
+
attr_writer :account_sid, :auth_token
|
6
|
+
|
7
|
+
def account_sid
|
8
|
+
if @account_sid
|
9
|
+
@account_sid
|
10
|
+
else
|
11
|
+
raise Twilio::ConfigurationError.new \
|
12
|
+
"Cannot complete request. Please set account_sid with Twilio::Config.setup first!"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def auth_token
|
17
|
+
if @auth_token
|
18
|
+
@auth_token
|
19
|
+
else
|
20
|
+
raise Twilio::ConfigurationError.new \
|
21
|
+
"Cannot complete request. Please set auth_token with Twilio::Config.setup first!"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
3
25
|
def setup(opts={}, &blk)
|
4
26
|
if block_given?
|
5
27
|
instance_eval &blk
|
6
28
|
warn 'The block syntax for configuration is deprecated. Use an options hash instead, e.g. Twilio::Config.setup account_sid: "AC00000000000000000000000", auth_token: "xxxxxxxxxxxxxxxxxxx"'
|
7
29
|
else
|
8
30
|
opts.map do |k,v|
|
9
|
-
|
10
|
-
Twilio.const_set(const, v) unless Twilio.const_defined? const
|
31
|
+
send("#{k}=", v)
|
11
32
|
end
|
12
33
|
end
|
13
34
|
|
data/lib/twilio/finder.rb
CHANGED
@@ -3,7 +3,7 @@ module Twilio
|
|
3
3
|
def find(id, opts={})
|
4
4
|
opts = opts.with_indifferent_access
|
5
5
|
# Support subaccounts by optionally passing in an account_sid or account object
|
6
|
-
account_sid = opts.delete('account_sid') || opts.delete('account').try(:sid) || Twilio::
|
6
|
+
account_sid = opts.delete('account_sid') || opts.delete('account').try(:sid) || Twilio::Config.account_sid
|
7
7
|
connect = opts.delete 'connect'
|
8
8
|
|
9
9
|
res = get "#{resource_path(account_sid)}/#{id}.json", :account_sid => (connect && account_sid)
|
@@ -17,7 +17,7 @@ module Twilio
|
|
17
17
|
def count(opts={})
|
18
18
|
opts = opts.with_indifferent_access
|
19
19
|
# Support subaccounts by optionally passing in an account_sid or account object
|
20
|
-
account_sid = opts.delete('account_sid') || opts.delete('account').try(:sid) || Twilio::
|
20
|
+
account_sid = opts.delete('account_sid') || opts.delete('account').try(:sid) || Twilio::Config.account_sid
|
21
21
|
connect = opts.delete 'connect'
|
22
22
|
|
23
23
|
params = prepare_params opts if opts.any?
|
@@ -27,7 +27,7 @@ module Twilio
|
|
27
27
|
def all(opts={})
|
28
28
|
opts = opts.with_indifferent_access
|
29
29
|
# Support subaccounts by optionally passing in an account_sid or account object
|
30
|
-
account_sid = opts.delete('account_sid') || opts.delete('account').try(:sid) || Twilio::
|
30
|
+
account_sid = opts.delete('account_sid') || opts.delete('account').try(:sid) || Twilio::Config.account_sid
|
31
31
|
connect = opts.delete 'connect'
|
32
32
|
|
33
33
|
params = prepare_params opts if opts.any?
|
data/lib/twilio/persistable.rb
CHANGED
@@ -6,7 +6,7 @@ module Twilio
|
|
6
6
|
def create(attrs={})
|
7
7
|
attrs = attrs.with_indifferent_access
|
8
8
|
# Support subaccounts by optionally passing in an account_sid or account object
|
9
|
-
account_sid = attrs.delete('account_sid') || attrs.delete('account').try(:sid) || Twilio::
|
9
|
+
account_sid = attrs.delete('account_sid') || attrs.delete('account').try(:sid) || Twilio::Config.account_sid
|
10
10
|
connect = attrs.delete 'connect'
|
11
11
|
request_opts = { :body => Hash[attrs.map { |k,v| [k.to_s.camelize, v]}] }
|
12
12
|
|
@@ -15,7 +15,7 @@ module Twilio
|
|
15
15
|
def expected_signature_for(request)
|
16
16
|
string_to_sign = request.url + request.request_parameters.sort.join
|
17
17
|
digest = OpenSSL::Digest::Digest.new('sha1')
|
18
|
-
hash = OpenSSL::HMAC.digest(digest, Twilio::
|
18
|
+
hash = OpenSSL::HMAC.digest(digest, Twilio::Config.auth_token, string_to_sign)
|
19
19
|
|
20
20
|
Base64.encode64(hash).strip
|
21
21
|
end
|
data/lib/twilio/resource.rb
CHANGED
@@ -111,8 +111,9 @@ module Twilio
|
|
111
111
|
define_method(meth) do |*args| # splatted args necessary hack since <= 1.8.7 does not support optional block args
|
112
112
|
opts = args.extract_options!
|
113
113
|
account_sid = opts.delete :account_sid
|
114
|
+
|
114
115
|
# if account sid is passed in as an option use it for basic auth (twilio connect)
|
115
|
-
super args.first, opts.merge(:headers => { 'User-Agent' => 'twilio-rb/2.1.1' }, :basic_auth => { :username => account_sid || Twilio::
|
116
|
+
super args.first, opts.merge(:headers => { 'User-Agent' => 'twilio-rb/2.1.1' }, :basic_auth => { :username => account_sid || Twilio::Config.account_sid, :password => Twilio::Config.auth_token })
|
116
117
|
end
|
117
118
|
end
|
118
119
|
|
data/lib/twilio/sandbox.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-02-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.0.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: i18n
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0.5'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0.5'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: httparty
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 0.10.0
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.10.0
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: crack
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ~>
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: 0.3.2
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.3.2
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: builder
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: 2.1.2
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 2.1.2
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: jwt
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 0.1.3
|
77
102
|
type: :runtime
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.1.3
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: webmock
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: 1.6.1
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.6.1
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: rspec
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: 2.2.0
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 2.2.0
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: mocha
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,10 +149,15 @@ dependencies:
|
|
109
149
|
version: 0.9.10
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 0.9.10
|
113
158
|
- !ruby/object:Gem::Dependency
|
114
159
|
name: timecop
|
115
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
116
161
|
none: false
|
117
162
|
requirements:
|
118
163
|
- - ! '>='
|
@@ -120,10 +165,15 @@ dependencies:
|
|
120
165
|
version: 0.3.5
|
121
166
|
type: :development
|
122
167
|
prerelease: false
|
123
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.3.5
|
124
174
|
- !ruby/object:Gem::Dependency
|
125
175
|
name: rake
|
126
|
-
requirement:
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
127
177
|
none: false
|
128
178
|
requirements:
|
129
179
|
- - ~>
|
@@ -131,7 +181,12 @@ dependencies:
|
|
131
181
|
version: 0.8.7
|
132
182
|
type: :development
|
133
183
|
prerelease: false
|
134
|
-
version_requirements:
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ~>
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 0.8.7
|
135
190
|
description: A nice Ruby wrapper for the Twilio REST API
|
136
191
|
email: sjtgraham@mac.com
|
137
192
|
executables: []
|
@@ -188,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
243
|
version: '0'
|
189
244
|
requirements: []
|
190
245
|
rubyforge_project:
|
191
|
-
rubygems_version: 1.8.
|
246
|
+
rubygems_version: 1.8.24
|
192
247
|
signing_key:
|
193
248
|
specification_version: 3
|
194
249
|
summary: Interact with the Twilio API in a nice Ruby way.
|