restful_resource 0.10.1 → 0.10.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +0 -2
- data/circle.yml +3 -0
- data/lib/restful_resource/http_client.rb +14 -11
- data/lib/restful_resource/version.rb +1 -1
- data/restful_resource.gemspec +1 -0
- data/spec/restful_resource/http_client_spec.rb +8 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83ebf863b441dd922d4fa84851d0dfe652fd9d85
|
4
|
+
data.tar.gz: 5f678540937c1c68d44c5621860dfe178dcc0593
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d662a4b7b79a6717f3e6eb05c2d70160ba25f37ef8a131feee4cc63f8effc7a4d731a29cce3978e0322780100ef6951cf4b828aece192fb8be050210ee31427
|
7
|
+
data.tar.gz: e56e0dd06bec9cd508951203cc60791fca49ec5af54b9235cf44823b86d896aa98861efdd99e9cb34eeb16271fff87b11764bc9766e79f181e96fdd8ae698d3e
|
data/Gemfile
CHANGED
data/circle.yml
ADDED
@@ -1,6 +1,6 @@
|
|
1
1
|
module RestfulResource
|
2
2
|
class HttpClient
|
3
|
-
class
|
3
|
+
class HttpError < StandardError
|
4
4
|
attr_reader :response
|
5
5
|
|
6
6
|
def initialize(response)
|
@@ -8,21 +8,24 @@ module RestfulResource
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
class UnprocessableEntity < HttpError
|
12
|
+
end
|
13
|
+
|
11
14
|
class ResourceNotFound < StandardError
|
12
15
|
def message
|
13
16
|
"404 Resource Not Found"
|
14
17
|
end
|
15
18
|
end
|
16
19
|
|
17
|
-
class OtherHttpError <
|
18
|
-
|
19
|
-
|
20
|
-
def initialize(response)
|
21
|
-
@response = Response.new(body: response[:body], headers: response[:headers], status: response[:status])
|
20
|
+
class OtherHttpError < HttpError
|
21
|
+
def message
|
22
|
+
"Http Error - Status code: #{response.status}"
|
22
23
|
end
|
24
|
+
end
|
23
25
|
|
26
|
+
class ServiceUnavailable < HttpError
|
24
27
|
def message
|
25
|
-
"
|
28
|
+
"HTTP 503: Service unavailable"
|
26
29
|
end
|
27
30
|
end
|
28
31
|
|
@@ -83,10 +86,10 @@ module RestfulResource
|
|
83
86
|
raise
|
84
87
|
rescue Faraday::ClientError => e
|
85
88
|
response = e.response
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
89
|
+
case response[:status]
|
90
|
+
when 422 then raise HttpClient::UnprocessableEntity.new(response)
|
91
|
+
when 503 then raise HttpClient::ServiceUnavailable.new(response)
|
92
|
+
else raise HttpClient::OtherHttpError.new(response)
|
90
93
|
end
|
91
94
|
end
|
92
95
|
end
|
data/restful_resource.gemspec
CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
|
+
spec.required_ruby_version = '>= 2.1'
|
20
21
|
|
21
22
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
23
|
spec.add_development_dependency "rake"
|
@@ -35,6 +35,14 @@ describe RestfulResource::HttpClient do
|
|
35
35
|
expect { @http_client.post('http://httpbin.org/status/422', data: { name: 'Mad cow' }) }.to raise_error(RestfulResource::HttpClient::UnprocessableEntity)
|
36
36
|
end
|
37
37
|
|
38
|
+
it 'put should raise error 503' do
|
39
|
+
expect { @http_client.put('http://httpbin.org/status/503', data: { name: 'Mad cow' }) }.to raise_error(RestfulResource::HttpClient::ServiceUnavailable)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'post should raise error 503' do
|
43
|
+
expect { @http_client.post('http://httpbin.org/status/503', data: { name: 'Mad cow' }) }.to raise_error(RestfulResource::HttpClient::ServiceUnavailable)
|
44
|
+
end
|
45
|
+
|
38
46
|
it 'should raise error on 404' do
|
39
47
|
expect { @http_client.get('http://httpbin.org/status/404') }.to raise_error(RestfulResource::HttpClient::ResourceNotFound)
|
40
48
|
expect { @http_client.delete('http://httpbin.org/status/404') }.to raise_error(RestfulResource::HttpClient::ResourceNotFound)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restful_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Santoro
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-06-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- LICENSE.txt
|
165
165
|
- README.md
|
166
166
|
- Rakefile
|
167
|
+
- circle.yml
|
167
168
|
- lib/restful_resource.rb
|
168
169
|
- lib/restful_resource/associations.rb
|
169
170
|
- lib/restful_resource/authorization.rb
|
@@ -200,7 +201,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
200
201
|
requirements:
|
201
202
|
- - ">="
|
202
203
|
- !ruby/object:Gem::Version
|
203
|
-
version: '
|
204
|
+
version: '2.1'
|
204
205
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
206
|
requirements:
|
206
207
|
- - ">="
|