apipie-bindings 0.1.0 → 0.2.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 +4 -4
- data/doc/release_notes.md +5 -0
- data/lib/apipie_bindings/api.rb +21 -3
- data/lib/apipie_bindings/version.rb +1 -1
- data/test/unit/api_test.rb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e8560165daeb6cae4d2530f42a9adc58e1511e3
|
4
|
+
data.tar.gz: 9291144917dc1a6111ba60e01de1096338c47b3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59e41d190c6bf09379b1a2b9b7f6f56923a1f9e4adb3289e49a61c61fc23d6c6831c1e57e0273c4b6f1a5cb6f067db502016812e5c3d2c13c093f307060e7891
|
7
|
+
data.tar.gz: 360e2e4781f437a0627b015acfb59de2cd291e9c66941d21c548fab65dacf164f3a5fbb88f037125be78ff1f3d7bdee640ed31e5c8c34eba6a620b5ae5317b30
|
data/doc/release_notes.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
Release notes
|
2
2
|
=============
|
3
3
|
|
4
|
+
### 0.2.0 (2017-04-24)
|
5
|
+
* Support for overriding exceptions from authorizers ([PR #64](https://github.com/Apipie/apipie-bindings/pull/64))
|
6
|
+
* Use ssl_ca_file with ssl_ca_path (rest-client < 1.7.0) ([PR #63](https://github.com/Apipie/apipie-bindings/pull/63)) ([#62](https://github.com/Apipie/apipie-bindings/issues/62))
|
7
|
+
* Make following redirects compatible with rest-client > 1.8 ([PR #61](https://github.com/Apipie/apipie-bindings/pull/61)) ([#60](https://github.com/Apipie/apipie-bindings/issues/60))
|
8
|
+
|
4
9
|
### 0.1.0 (2017-03-28)
|
5
10
|
* Verify SSL by default ([PR #59](https://github.com/Apipie/apipie-bindings/pull/59))
|
6
11
|
* Do not hide exceptions during cache retrieval ([PR #57](https://github.com/Apipie/apipie-bindings/pull/57))
|
data/lib/apipie_bindings/api.rb
CHANGED
@@ -98,6 +98,17 @@ module ApipieBindings
|
|
98
98
|
if (config[:timeout] && config[:timeout].to_i < 0)
|
99
99
|
config[:timeout] = (RestClient.version < '1.7.0') ? -1 : nil
|
100
100
|
end
|
101
|
+
|
102
|
+
# RestClient < 1.7.0 does not support ssl_ca_path use ssl_ca_file instead
|
103
|
+
if options[:ssl_ca_path] && !RestClient::Request.method_defined?(:ssl_opts)
|
104
|
+
parsed_uri = URI.parse(@uri)
|
105
|
+
cert_file = File.join(options[:ssl_ca_path], "#{parsed_uri.host}.pem")
|
106
|
+
if File.exist?(cert_file)
|
107
|
+
options[:ssl_ca_file] = cert_file
|
108
|
+
log.warn "ssl_ca_path is not supported by RestClient. ssl_ca_file = #{cert_file} was used instead."
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
101
112
|
@resource_config = {
|
102
113
|
:timeout => config[:timeout],
|
103
114
|
:headers => headers,
|
@@ -229,10 +240,10 @@ module ApipieBindings
|
|
229
240
|
response = call_client(client, path, args)
|
230
241
|
update_cache(response.headers[:apipie_checksum])
|
231
242
|
rescue => e
|
232
|
-
@authenticator.error(e) if authenticate && @authenticator
|
233
243
|
log.error e.message
|
234
244
|
log.debug inspect_data(e)
|
235
|
-
|
245
|
+
override_e = @authenticator.error(e) if authenticate && @authenticator
|
246
|
+
raise override_e.is_a?(StandardError) ? override_e : e
|
236
247
|
end
|
237
248
|
end
|
238
249
|
|
@@ -323,7 +334,14 @@ module ApipieBindings
|
|
323
334
|
if [301, 302, 307].include?(response.code) && [:always, :never].include?(@follow_redirects)
|
324
335
|
if @follow_redirects == :always
|
325
336
|
log.debug "Response redirected to #{response.headers[:location]}"
|
326
|
-
|
337
|
+
|
338
|
+
if response.method(:follow_redirection).arity == 0
|
339
|
+
# rest-client > 1.8
|
340
|
+
response.follow_redirection(&block)
|
341
|
+
else
|
342
|
+
# rest-client <= 1.8
|
343
|
+
response.follow_redirection(request, result, &block)
|
344
|
+
end
|
327
345
|
else
|
328
346
|
raise exception_with_response(response)
|
329
347
|
end
|
data/test/unit/api_test.rb
CHANGED
@@ -259,6 +259,18 @@ describe ApipieBindings::API do
|
|
259
259
|
end
|
260
260
|
end
|
261
261
|
|
262
|
+
it "raises exception returned from authenticator" do
|
263
|
+
Dir.mktmpdir do |dir|
|
264
|
+
api = ApipieBindings::API.new(binding_params(dir))
|
265
|
+
api.stubs(:call_client).raises(RestClient::Unauthorized)
|
266
|
+
authenticator.expects(:error).returns(RuntimeError.new('Custom unauthorized exception'))
|
267
|
+
ex = assert_raises RuntimeError do
|
268
|
+
api.http_call(:get, '/path')
|
269
|
+
end
|
270
|
+
assert_equal 'Custom unauthorized exception', ex.message
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
262
274
|
it "raises exception when authenticator wasn't provided" do
|
263
275
|
Dir.mktmpdir do |dir|
|
264
276
|
api = ApipieBindings::API.new(binding_params(dir, :authenticator => nil))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apipie-bindings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Bačovský
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|