api-client 1.9.0 → 1.9.1
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/CHANGELOG.md +4 -0
- data/lib/api-client/base.rb +1 -1
- data/lib/api-client/exceptions/not_found.rb +1 -1
- data/lib/api-client/parser.rb +4 -4
- data/lib/api-client/version.rb +1 -1
- data/spec/api-client/parser_spec.rb +8 -8
- metadata +3 -3
data/CHANGELOG.md
CHANGED
data/lib/api-client/base.rb
CHANGED
@@ -108,7 +108,7 @@ module ApiClient
|
|
108
108
|
protected
|
109
109
|
|
110
110
|
def self.method_missing(method, *args)
|
111
|
-
@response = Parser.response(Dispatcher.send(method, *args))
|
111
|
+
@response = Parser.response(Dispatcher.send(method, *args), *args[0])
|
112
112
|
case true
|
113
113
|
when @response.instance_of?(Array) then return @response.map { |a| new(a.merge(:response => @response)) }
|
114
114
|
when @response.key?(remote_object) then return new(@response[remote_object].merge(:response => @response))
|
data/lib/api-client/parser.rb
CHANGED
@@ -6,8 +6,8 @@ module ApiClient::Parser
|
|
6
6
|
#
|
7
7
|
# @param [HTTP] response HTTP object for the request.
|
8
8
|
# @return [Hash] the body parsed.
|
9
|
-
def self.response(response)
|
10
|
-
raise_exception(response)
|
9
|
+
def self.response(response, url)
|
10
|
+
raise_exception(response, url)
|
11
11
|
begin
|
12
12
|
object = ::JSON.parse(response.body)
|
13
13
|
rescue ::JSON::ParserError, TypeError
|
@@ -18,11 +18,11 @@ module ApiClient::Parser
|
|
18
18
|
|
19
19
|
protected
|
20
20
|
|
21
|
-
def self.raise_exception(response)
|
21
|
+
def self.raise_exception(response, url)
|
22
22
|
case response.code.to_i
|
23
23
|
when 401 then raise ApiClient::Exceptions::Unauthorized
|
24
24
|
when 403 then raise ApiClient::Exceptions::Forbidden
|
25
|
-
when 404 then raise ApiClient::Exceptions::NotFound.new(
|
25
|
+
when 404 then raise ApiClient::Exceptions::NotFound.new(url)
|
26
26
|
when 500 then raise ApiClient::Exceptions::InternalServerError
|
27
27
|
when 502 then raise ApiClient::Exceptions::BadGateway
|
28
28
|
when 503 then raise ApiClient::Exceptions::ServiceUnavailable
|
data/lib/api-client/version.rb
CHANGED
@@ -9,7 +9,7 @@ describe ApiClient::Parser do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should return the response code and the body parsed" do
|
12
|
-
ApiClient::Parser.response(@response).should == { "base" => { "a" => "b" } }
|
12
|
+
ApiClient::Parser.response(@response, 'http://api.example.com/user/5').should == { "base" => { "a" => "b" } }
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -20,7 +20,7 @@ describe ApiClient::Parser do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should return the response code and an empty hash" do
|
23
|
-
ApiClient::Parser.response(@response).should == {}
|
23
|
+
ApiClient::Parser.response(@response, 'http://api.example.com/user/5').should == {}
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -32,7 +32,7 @@ describe ApiClient::Parser do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "should return a Unauthorized exception" do
|
35
|
-
lambda { ApiClient::Parser.response(@response) }.should raise_error(ApiClient::Exceptions::Unauthorized)
|
35
|
+
lambda { ApiClient::Parser.response(@response, 'http://api.example.com/user/5') }.should raise_error(ApiClient::Exceptions::Unauthorized)
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -43,7 +43,7 @@ describe ApiClient::Parser do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should return a Forbidden exception" do
|
46
|
-
lambda { ApiClient::Parser.response(@response) }.should raise_error(ApiClient::Exceptions::Forbidden)
|
46
|
+
lambda { ApiClient::Parser.response(@response, 'http://api.example.com/user/5') }.should raise_error(ApiClient::Exceptions::Forbidden)
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -54,7 +54,7 @@ describe ApiClient::Parser do
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should return a NotFound exception" do
|
57
|
-
lambda { ApiClient::Parser.response(@response) }.should raise_error(ApiClient::Exceptions::NotFound, "http://api.example.com/user/5")
|
57
|
+
lambda { ApiClient::Parser.response(@response, 'http://api.example.com/user/5') }.should raise_error(ApiClient::Exceptions::NotFound, "http://api.example.com/user/5")
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -65,7 +65,7 @@ describe ApiClient::Parser do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
it "should return a InternalServerError exception" do
|
68
|
-
lambda { ApiClient::Parser.response(@response) }.should raise_error(ApiClient::Exceptions::InternalServerError)
|
68
|
+
lambda { ApiClient::Parser.response(@response, 'http://api.example.com/user/5') }.should raise_error(ApiClient::Exceptions::InternalServerError)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
@@ -76,7 +76,7 @@ describe ApiClient::Parser do
|
|
76
76
|
end
|
77
77
|
|
78
78
|
it "should return a BadGateway exception" do
|
79
|
-
lambda { ApiClient::Parser.response(@response) }.should raise_error(ApiClient::Exceptions::BadGateway)
|
79
|
+
lambda { ApiClient::Parser.response(@response, 'http://api.example.com/user/5') }.should raise_error(ApiClient::Exceptions::BadGateway)
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
@@ -87,7 +87,7 @@ describe ApiClient::Parser do
|
|
87
87
|
end
|
88
88
|
|
89
89
|
it "should return a ServiceUnavailable exception" do
|
90
|
-
lambda { ApiClient::Parser.response(@response) }.should raise_error(ApiClient::Exceptions::ServiceUnavailable)
|
90
|
+
lambda { ApiClient::Parser.response(@response, 'http://api.example.com/user/5') }.should raise_error(ApiClient::Exceptions::ServiceUnavailable)
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -167,7 +167,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
167
167
|
version: '0'
|
168
168
|
segments:
|
169
169
|
- 0
|
170
|
-
hash:
|
170
|
+
hash: -1190097789751108706
|
171
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
172
|
none: false
|
173
173
|
requirements:
|
@@ -176,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
176
|
version: '0'
|
177
177
|
segments:
|
178
178
|
- 0
|
179
|
-
hash:
|
179
|
+
hash: -1190097789751108706
|
180
180
|
requirements: []
|
181
181
|
rubyforge_project:
|
182
182
|
rubygems_version: 1.8.24
|