twilio-rb 2.2.1 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://travis-ci.org/stevegraham/twilio-rb.png)](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::ACCOUNT_SID}/AvailablePhoneNumbers/#{country_code}/#{number_type}.json", params
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
@@ -17,7 +17,7 @@ module Twilio
17
17
  if opts['account_sid'] && opts['auth_token']
18
18
  [opts.delete('account_sid'), opts.delete('auth_token')]
19
19
  else
20
- [Twilio::ACCOUNT_SID, Twilio::AUTH_TOKEN]
20
+ [Twilio::Config.account_sid, Twilio::Config.auth_token]
21
21
  end
22
22
  end
23
23
 
data/lib/twilio/config.rb CHANGED
@@ -1,13 +1,34 @@
1
- module Twilio
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
- const = k.to_s.upcase
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::ACCOUNT_SID
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::ACCOUNT_SID
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::ACCOUNT_SID
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?
@@ -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::ACCOUNT_SID
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::AUTH_TOKEN, string_to_sign)
18
+ hash = OpenSSL::HMAC.digest(digest, Twilio::Config.auth_token, string_to_sign)
19
19
 
20
20
  Base64.encode64(hash).strip
21
21
  end
@@ -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::ACCOUNT_SID, :password => Twilio::AUTH_TOKEN })
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
 
@@ -19,7 +19,7 @@ module Twilio
19
19
 
20
20
  private
21
21
  def path
22
- "/Accounts/#{Twilio::ACCOUNT_SID}/Sandbox.json"
22
+ "/Accounts/#{Twilio::Config.account_sid}/Sandbox.json"
23
23
  end
24
24
  extend self
25
25
  end
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.1
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-01-20 00:00:00.000000000Z
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: &70246567007180 !ruby/object:Gem::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: *70246567007180
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: &70246567006680 !ruby/object:Gem::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: *70246567006680
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: &70246567006200 !ruby/object:Gem::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: *70246567006200
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: &70246567005740 !ruby/object:Gem::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: *70246567005740
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: &70246567005280 !ruby/object:Gem::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: *70246567005280
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: &70246567004800 !ruby/object:Gem::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: *70246567004800
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: &70246567004340 !ruby/object:Gem::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: *70246567004340
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: &70246567003860 !ruby/object:Gem::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: *70246567003860
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: &70246567003400 !ruby/object:Gem::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: *70246567003400
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: &70246567002940 !ruby/object:Gem::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: *70246567002940
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: &70246567002480 !ruby/object:Gem::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: *70246567002480
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.6
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.