restool 1.0.5 → 1.0.9

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: 05ec555dd4ba0c213f8e83605d1540a6c882e321a36efe26648f2667e84cf09a
4
- data.tar.gz: 15e3008576a39d6d1911f0fbd42b9b272feec61dd14960746affe76061a45fab
3
+ metadata.gz: 54aafd4653f3e0731a730bd9cb1980f32627c700f0115e951f81a98c36394554
4
+ data.tar.gz: 190778d772811b36dcad7dc21e8adc9e66f0850e49e7c43fcddde7a92d20206c
5
5
  SHA512:
6
- metadata.gz: e11f57af7e2bfab4fe7ba87ed3cec7935457a8b8717510aea5d37e7a28e329532befaeb21b07eba47c8933b18234b53e77be1e6607f12131c1d3ac2c2b51553a
7
- data.tar.gz: 9b0c9f4955b16048588b071ebf631fcdeeb374bf204cf729d61511c1091b67e18aa0d824d414df9485cd212c92848148293adaf7fea75dc9768a9f9e9fc3ee88
6
+ metadata.gz: 6d11e6e4f27ae0409c1ec7cbb20410ce2e64ff179d6dedb48195278148879ee1d439ba4109daec54be169f4c0b1eef3698728580f908c144937f2dfcb5b47f22
7
+ data.tar.gz: cf06a3072c062e965bed39b7a5889402cb18bdc679b10b3655b445afb78cf9364fef8d4e23d6713988fbf9d916c8bee7fbceaa0d7ae0edaae324ee3387dca7bb
@@ -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,15 +10,28 @@ 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
+ # Enumerable class does not have to_h in Ruby 1.9
16
+ header = header_to_hash(remote_response.each_header)
17
+
18
+ response = response_handler.call(remote_response.body, remote_response.code,
19
+ header)
16
20
 
17
21
  return response if operation.response.nil?
18
22
 
19
23
  Restool::Traversal::Converter.convert(response, operation.response, representations)
20
24
  end
21
25
 
26
+ private
27
+
28
+ def self.header_to_hash(header)
29
+ header.inject({}) do |memo, (key, value)|
30
+ memo[key] = value
31
+ memo
32
+ end
33
+ end
34
+
22
35
  end
23
36
  end
24
37
  end
@@ -91,9 +91,9 @@ module Restool
91
91
  when Restool::Traversal::TRAVERSAL_TYPE_INTEGER
92
92
  Integer(value)
93
93
  when Restool::Traversal::TRAVERSAL_TYPE_DECIMAL
94
- BigDecimal.new(scalar)
94
+ value.to_s.to_f
95
95
  when Restool::Traversal::TRAVERSAL_TYPE_BOOLEAN
96
- value.downcase == 'true'
96
+ value.to_s.downcase == 'true'
97
97
  end
98
98
  end
99
99
 
@@ -1,3 +1,3 @@
1
1
  module Restool
2
- VERSION = '1.0.5'
2
+ VERSION = '1.0.9'
3
3
  end
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.5
4
+ version: 1.0.9
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: 2021-03-09 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2022-02-10 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
@@ -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