hal-client 3.6.0 → 3.7.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.
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