twilio_resource 0.1.1 → 0.2.0
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/lib/twilio_resource.rb +8 -8
- data/lib/twilio_resource/base.rb +9 -14
- data/lib/twilio_resource/call.rb +1 -1
- data/lib/twilio_resource/incoming_phone_number.rb +1 -1
- data/lib/twilio_resource/local_incoming_phone_number.rb +4 -2
- data/lib/twilio_resource/toll_free_incoming_phone_number.rb +4 -2
- data/test/test_helper.rb +1 -1
- data/test/twilio_mock.rb +11 -3
- metadata +10 -14
data/lib/twilio_resource.rb
CHANGED
@@ -1,10 +1,17 @@
|
|
1
1
|
require 'logger'
|
2
|
-
require '
|
2
|
+
require 'reactive_resource'
|
3
3
|
|
4
4
|
require 'twilio_resource/twilio_format'
|
5
5
|
require 'twilio_resource/exceptions'
|
6
6
|
|
7
7
|
module TwilioResource
|
8
|
+
|
9
|
+
autoload :Base, 'twilio_resource/base'
|
10
|
+
autoload :Account, 'twilio_resource/account'
|
11
|
+
autoload :Call, 'twilio_resource/call'
|
12
|
+
autoload :IncomingPhoneNumber, 'twilio_resource/incoming_phone_number'
|
13
|
+
autoload :LocalIncomingPhoneNumber, 'twilio_resource/local_incoming_phone_number'
|
14
|
+
autoload :TollFreeIncomingPhoneNumber, 'twilio_resource/toll_free_incoming_phone_number'
|
8
15
|
|
9
16
|
class << self
|
10
17
|
attr_accessor :logger
|
@@ -18,10 +25,3 @@ module TwilioResource
|
|
18
25
|
TwilioResource::Base.token = token
|
19
26
|
end
|
20
27
|
end
|
21
|
-
|
22
|
-
require 'twilio_resource/base'
|
23
|
-
require 'twilio_resource/account'
|
24
|
-
require 'twilio_resource/call'
|
25
|
-
require 'twilio_resource/incoming_phone_number'
|
26
|
-
require 'twilio_resource/local_incoming_phone_number'
|
27
|
-
require 'twilio_resource/toll_free_incoming_phone_number'
|
data/lib/twilio_resource/base.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'reactive_resource'
|
2
|
+
|
1
3
|
# Encapsulates the changes that need to be made to active_resource's
|
2
4
|
# defaults in order to communicate with Twilio. There are a few main
|
3
5
|
# issues with ActiveResource's defaults:
|
@@ -15,7 +17,7 @@
|
|
15
17
|
# ActiveResource::Formats::TwilioFormat.
|
16
18
|
#
|
17
19
|
# All of the Twilio ActiveResource classes inherit from this class.
|
18
|
-
class TwilioResource::Base <
|
20
|
+
class TwilioResource::Base < ReactiveResource::Base
|
19
21
|
|
20
22
|
class << self
|
21
23
|
attr_accessor :sid
|
@@ -27,29 +29,23 @@ class TwilioResource::Base < ActiveResource::Base
|
|
27
29
|
alias_method :password=, :token=
|
28
30
|
end
|
29
31
|
|
30
|
-
#
|
32
|
+
# Add logging to these requests
|
31
33
|
def self.element_path(id, prefix_options = {}, query_options = nil)
|
32
|
-
|
33
|
-
extension = format.extension.blank? ? "" : ".#{format.extension}"
|
34
|
-
path = "#{prefix(prefix_options)}#{collection_name}/#{id}#{extension}#{query_string(query_options)}"
|
34
|
+
path = super(id, prefix_options, query_options)
|
35
35
|
TwilioResource.logger.info("Request: #{path}")
|
36
36
|
path
|
37
37
|
end
|
38
38
|
|
39
|
-
#
|
39
|
+
# Add logging to these requests
|
40
40
|
def self.collection_path(prefix_options = {}, query_options = nil)
|
41
|
-
|
42
|
-
extension = format.extension.blank? ? "" : ".#{format.extension}"
|
43
|
-
path = "#{prefix(prefix_options)}#{collection_name}#{extension}#{query_string(query_options)}"
|
41
|
+
path = super(prefix_options, query_options)
|
44
42
|
TwilioResource.logger.info("Request: #{path}")
|
45
43
|
path
|
46
44
|
end
|
47
45
|
|
48
|
-
#
|
46
|
+
# Add logging to these requests
|
49
47
|
def self.custom_method_collection_url(method_name, options = {})
|
50
|
-
|
51
|
-
extension = format.extension.blank? ? "" : ".#{format.extension}"
|
52
|
-
path = "#{prefix(prefix_options)}#{collection_name}/#{method_name}#{extension}#{query_string(query_options)}"
|
48
|
+
path = super(method_name, options)
|
53
49
|
TwilioResource.logger.info("Request: #{path}")
|
54
50
|
path
|
55
51
|
end
|
@@ -73,7 +69,6 @@ class TwilioResource::Base < ActiveResource::Base
|
|
73
69
|
rescue => e
|
74
70
|
raise TwilioResource::Exception.find_exception(e)
|
75
71
|
end
|
76
|
-
|
77
72
|
end
|
78
73
|
|
79
74
|
|
data/lib/twilio_resource/call.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# - http://www.twilio.com/docs/api/2008-08-01/rest/call
|
4
4
|
# - http://www.twilio.com/docs/api/2008-08-01/rest/making_calls
|
5
5
|
class TwilioResource::Call < TwilioResource::Base
|
6
|
-
|
6
|
+
belongs_to :account
|
7
7
|
|
8
8
|
NOT_DIALED = 0
|
9
9
|
IN_PROGRESS = 1
|
@@ -2,5 +2,5 @@
|
|
2
2
|
# incoming phone calls. Documentation is at
|
3
3
|
# http://www.twilio.com/docs/api/2008-08-01/rest/incoming-phone-numbers
|
4
4
|
class TwilioResource::IncomingPhoneNumber < TwilioResource::Base
|
5
|
-
|
5
|
+
belongs_to :account
|
6
6
|
end
|
@@ -5,10 +5,12 @@
|
|
5
5
|
# http://www.twilio.com/docs/api/2008-08-01/rest/incoming-phone-numbers
|
6
6
|
class TwilioResource::LocalIncomingPhoneNumber < TwilioResource::IncomingPhoneNumber
|
7
7
|
|
8
|
-
self.prefix = superclass.prefix_source + 'IncomingPhoneNumbers/'
|
9
|
-
|
10
8
|
def self.collection_name
|
11
9
|
'Local'
|
12
10
|
end
|
13
11
|
|
12
|
+
def self.association_prefix(options)
|
13
|
+
super(options) + superclass.collection_name + "/"
|
14
|
+
end
|
15
|
+
|
14
16
|
end
|
@@ -5,10 +5,12 @@
|
|
5
5
|
# http://www.twilio.com/docs/api/2008-08-01/rest/incoming-phone-numbers
|
6
6
|
class TwilioResource::TollFreeIncomingPhoneNumber < TwilioResource::IncomingPhoneNumber
|
7
7
|
|
8
|
-
self.prefix = superclass.prefix_source + 'IncomingPhoneNumbers/'
|
9
|
-
|
10
8
|
def self.collection_name
|
11
9
|
'TollFree'
|
12
10
|
end
|
13
11
|
|
12
|
+
def self.association_prefix(options)
|
13
|
+
super(options) + superclass.collection_name + "/"
|
14
|
+
end
|
15
|
+
|
14
16
|
end
|
data/test/test_helper.rb
CHANGED
data/test/twilio_mock.rb
CHANGED
@@ -22,10 +22,18 @@ class TwilioMock
|
|
22
22
|
|
23
23
|
end
|
24
24
|
|
25
|
+
def self.build_header(method)
|
26
|
+
if ActiveResource::VERSION::MAJOR == 3
|
27
|
+
TwilioResource::Account.connection.send(:build_request_headers, {}, method, '')
|
28
|
+
else
|
29
|
+
TwilioResource::Account.connection.send(:build_request_headers, {})
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
25
33
|
def self.auth_delete(account_id)
|
26
34
|
old_account_id = TwilioResource::Base.user
|
27
35
|
TwilioResource::Base.user = account_id
|
28
|
-
auth =
|
36
|
+
auth = build_header(:delete)
|
29
37
|
TwilioResource::Base.user = old_account_id
|
30
38
|
auth
|
31
39
|
end
|
@@ -33,7 +41,7 @@ class TwilioMock
|
|
33
41
|
def self.auth_post(account_id)
|
34
42
|
old_account_id = TwilioResource::Base.user
|
35
43
|
TwilioResource::Base.user = account_id
|
36
|
-
auth =
|
44
|
+
auth = build_header(:post)
|
37
45
|
TwilioResource::Base.user = old_account_id
|
38
46
|
auth
|
39
47
|
end
|
@@ -41,7 +49,7 @@ class TwilioMock
|
|
41
49
|
def self.auth_get(account_id)
|
42
50
|
old_account_id = TwilioResource::Base.user
|
43
51
|
TwilioResource::Base.user = account_id
|
44
|
-
auth =
|
52
|
+
auth = build_header(:get)
|
45
53
|
TwilioResource::Base.user = old_account_id
|
46
54
|
auth
|
47
55
|
end
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twilio_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 25
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
7
|
+
- 2
|
8
|
+
- 0
|
9
|
+
version: 0.2.0
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Justin Weiss
|
@@ -15,23 +14,22 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date:
|
17
|
+
date: 2011-02-16 00:00:00 -08:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
|
-
name:
|
21
|
+
name: reactive_resource
|
23
22
|
prerelease: false
|
24
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
25
|
requirements:
|
27
|
-
- -
|
26
|
+
- - ~>
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 7
|
30
28
|
segments:
|
31
|
-
-
|
32
|
-
-
|
33
|
-
-
|
34
|
-
version:
|
29
|
+
- 0
|
30
|
+
- 5
|
31
|
+
- 1
|
32
|
+
version: 0.5.1
|
35
33
|
type: :runtime
|
36
34
|
version_requirements: *id001
|
37
35
|
description:
|
@@ -74,7 +72,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
74
72
|
requirements:
|
75
73
|
- - ">="
|
76
74
|
- !ruby/object:Gem::Version
|
77
|
-
hash: 3
|
78
75
|
segments:
|
79
76
|
- 0
|
80
77
|
version: "0"
|
@@ -83,7 +80,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
80
|
requirements:
|
84
81
|
- - ">="
|
85
82
|
- !ruby/object:Gem::Version
|
86
|
-
hash: 3
|
87
83
|
segments:
|
88
84
|
- 0
|
89
85
|
version: "0"
|