restool 1.0.4 → 1.0.7.beta

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
  SHA256:
3
- metadata.gz: cbb07cae8d7353e4589d17790d5703c80bbf7279c93044602705281af6cbaafd
4
- data.tar.gz: 61ec6541cf4cafbf66b83fa223eb1092677ae0c2b90ba10ecee3dd99bca143ed
3
+ metadata.gz: ff559203581ff39c2af14b0bd45bd4d79ff213810d1d3b1d4492d6dff8ceb3fa
4
+ data.tar.gz: e8b862dd8a21e7da4ae4b2fa9838ab92581185509d32764f98ff656b73c4cd6e
5
5
  SHA512:
6
- metadata.gz: dfc5f9475718070390a2f240b3187389924396e1dfce1f29b17a995bf0cc1337031dc233ba72747bf72ee6ce72502a06449802d5b23f4cd7fb86efd7e37c463c
7
- data.tar.gz: ee162222b723ad377ed4669dcbf1f6275ba46be10d65ee6c5c6de09a54b0cd91dcc7be281fc6f132d7f823551e7fcdd29a79c69210ce9007d0c4d3810a5f23d2
6
+ metadata.gz: df1c4c75170d4044b029e441179bb1832f38856d320321c3c57b61792d503d1c73b8e7178486213eabb8352c4cf86b2dc3a640b9bc1ce3e4641d57ab928e76cd
7
+ data.tar.gz: af1557a77df93f47944c16693322e1576c7e3db5dafc23ed875e32f4573adb11d2a9edcd7248699fd2801cef85c210aa8a5e418d23f5795886d2a657095fca6a
@@ -25,7 +25,11 @@ module Restool
25
25
  def build_connection(host, verify_ssl, timeout, opts)
26
26
  uri = URI.parse(host)
27
27
 
28
- connection = Net::HTTP.new(uri.host, uri.port)
28
+ connection = if proxy_uri
29
+ Net::HTTP.new(uri.host, uri.port, proxy_uri.host, proxy_uri.port)
30
+ else
31
+ Net::HTTP.new(uri.host, uri.port)
32
+ end
29
33
 
30
34
  connection.use_ssl = uri.is_a?(URI::HTTPS)
31
35
  connection.verify_mode = verify_ssl?(verify_ssl)
@@ -36,6 +40,13 @@ module Restool
36
40
  connection
37
41
  end
38
42
 
43
+ def proxy_uri
44
+ # Patch for Net/Http issue with env var
45
+ proxy_env = ENV['http_proxy'] || ENV['HTTP_PROXY']
46
+
47
+ URI.parse(proxy_env) if proxy_env != nil && proxy_env != ''
48
+ end
49
+
39
50
  def verify_ssl?(verify_ssl_setting)
40
51
  verify_ssl_setting ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE
41
52
  end
@@ -10,9 +10,10 @@ module Restool
10
10
  def self.execute(remote_client, operation, path, params, headers,
11
11
  response_handler, representations, basic_auth)
12
12
  remote_response = remote_client.make_request(path, operation.method, params, headers,
13
- basic_auth)
13
+ basic_auth)
14
14
 
15
- response = response_handler.call(remote_response.body, remote_response.code)
15
+ response = response_handler.call(remote_response.body, remote_response.code,
16
+ remote_response.each_header.to_h)
16
17
 
17
18
  return response if operation.response.nil?
18
19
 
@@ -18,9 +18,7 @@ module Restool
18
18
 
19
19
  raise "Service #{service_name} not found in configuration" unless service_config
20
20
 
21
- @service ||= build_service(service_config, opts)
22
-
23
- @service
21
+ build_service(service_config, opts)
24
22
  end
25
23
 
26
24
  private
@@ -1,4 +1,3 @@
1
1
  module Restool
2
- VERSION = '1.0.4'
2
+ VERSION = '1.0.7.beta'
3
3
  end
4
-
metadata CHANGED
@@ -1,15 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restool
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.7.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Andres Zeni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-29 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2021-08-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: factory_bot
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-its
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3'
13
69
  description: Make HTTP requests and handle its responses using simple method calls.
14
70
  Restool turns your HTTP API and its responses into Ruby interfaces.
15
71
  email:
@@ -20,7 +76,6 @@ extra_rdoc_files: []
20
76
  files:
21
77
  - lib/restool.rb
22
78
  - lib/restool/logger/request_logger.rb
23
- - lib/restool/mock/restool.rb
24
79
  - lib/restool/service/operation_definer.rb
25
80
  - lib/restool/service/operation_request.rb
26
81
  - lib/restool/service/remote_client.rb
@@ -48,9 +103,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
48
103
  version: '0'
49
104
  required_rubygems_version: !ruby/object:Gem::Requirement
50
105
  requirements:
51
- - - ">="
106
+ - - ">"
52
107
  - !ruby/object:Gem::Version
53
- version: '0'
108
+ version: 1.3.1
54
109
  requirements: []
55
110
  rubygems_version: 3.2.0.rc.1
56
111
  signing_key:
@@ -1,32 +0,0 @@
1
- require_relative '../settings/loader'
2
-
3
- module Restool
4
- module Mock
5
- def self.create(service_name, operation_responses)
6
- @operation_responses = operation_responses
7
- @service_config = Restool::Settings::Loader.load(service_name)
8
-
9
- Service.new(@service_config, operation_responses)
10
- end
11
-
12
- private
13
-
14
- class Service
15
- def initialize(service_config, operation_responses)
16
- @service_config = service_config
17
- @operation_responses = operation_responses
18
- end
19
-
20
- def method_missing(method, *args, &block)
21
- if @service_config.operations.map(&:name).include?(method)
22
- operation_response = @operation_responses[method]
23
- response_representation = @service_config.operation.response
24
- representations = @service_config.representations
25
-
26
- Restool::Traversal::Converter.convert(operation_response, response_representation, representations)
27
- end
28
- end
29
- end
30
-
31
- end
32
- end