hal-client 3.6.0 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 81cff13c5addef810f60d7f582893755f5c5002c
4
- data.tar.gz: 50afe68ae72932b61422c8f0c784cbacc0058466
3
+ metadata.gz: 1c95d8286a947d3e8cd05ace7fcdc4cb17ef8822
4
+ data.tar.gz: 50a135afb535a846fe8bd89a44eab315e4ccb41f
5
5
  SHA512:
6
- metadata.gz: dd8b9912c0efaf36e53d58a0f36796df851d30ffd9ea3f78741d0c3c9cd20692f87f19163e21bbdd968cadb9bbb73a8a2ce1d0266ecb11aff990446d476afb77
7
- data.tar.gz: d930ba6fc1f828b0120e296338c9e8386495531617d9a271212471c870d41470fb9f444ea14b6fdcf983b31e1bd9c15bf2ef601d96762ee08e009a592eee09d3
6
+ metadata.gz: 152f91baac2a1ce9a5fd24058ca676b75d425a94e2467d89e194f36a563a24e09b9fb7b69385cd004f1422f6b53dea22ee24f628e2926fb87c14e247f5253273
7
+ data.tar.gz: 41e520737a434e9fc273fc0a5d6e0afe29f0fa9a55b42d1d565f9902bac92417379e68a5b248967c84eec8e2877898e064603622751d75d57a6e732b7cb9c3d0
data/hal-client.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "http", "~> 0.6.1"
21
+ spec.add_dependency "http", "~> 0.7"
22
22
  spec.add_dependency "addressable", "~> 2.3"
23
23
  spec.add_dependency "multi_json", "~> 1.9"
24
24
 
@@ -1,3 +1,3 @@
1
1
  class HalClient
2
- VERSION = "3.6.0"
2
+ VERSION = "3.7.0"
3
3
  end
data/lib/hal_client.rb CHANGED
@@ -29,10 +29,12 @@ class HalClient
29
29
  # for the request or a string which will always be the value of
30
30
  # the authorization header
31
31
  # :headers - a hash of other headers to send on each request.
32
+ # :base_client - An HTTP::Client object to use.
32
33
  def initialize(options={})
33
34
  @default_message_request_headers = HTTP::Headers.new
34
35
  @default_entity_request_headers = HTTP::Headers.new
35
36
  @auth_helper = as_callable(options.fetch(:authorization, NullAuthHelper))
37
+ @base_client ||= options[:base_client]
36
38
 
37
39
  default_message_request_headers.set('Accept', options[:accept]) if
38
40
  options[:accept]
@@ -70,6 +72,9 @@ class HalClient
70
72
  def get(url, headers={})
71
73
  headers = auth_headers(url).merge(headers)
72
74
  interpret_response client_for_get(override_headers: headers).get(url)
75
+
76
+ rescue HttpError => e
77
+ fail e.class.new("GET <#{url}> failed with code #{e.response.status}", e.response)
73
78
  end
74
79
 
75
80
  class << self
@@ -80,13 +85,18 @@ class HalClient
80
85
  headers = auth_headers(url).merge(headers)
81
86
 
82
87
  req_body = if data.respond_to? :to_hal
83
- data.to_hal
84
- else
85
- data
86
- end
88
+ data.to_hal
89
+ else
90
+ data
91
+ end
92
+
93
+ begin
94
+ interpret_response client_for_post(override_headers: headers)
95
+ .request(method, url, body: req_body)
87
96
 
88
- interpret_response client_for_post(override_headers: headers)
89
- .request(method, url, body: req_body)
97
+ rescue HttpError => e
98
+ fail e.class.new("#{method.to_s.upcase} <#{url}> failed with code #{e.response.status}", e.response)
99
+ end
90
100
  end
91
101
  end
92
102
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hal-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.0
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-13 00:00:00.000000000 Z
11
+ date: 2015-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.6.1
19
+ version: '0.7'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.6.1
26
+ version: '0.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: addressable
29
29
  requirement: !ruby/object:Gem::Requirement