restful_resource 0.10.1 → 0.10.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.
- 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
|
- - ">="
|