manageiq-api-client 0.4.0 → 0.4.1

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
  SHA256:
3
- metadata.gz: 2cf72edce682a6dd72ea4e953b17db64d99cd5c32c9d768f1d41bf8c4b09b888
4
- data.tar.gz: 1b2df1d7796fa18e4d20c00355b6505566dac1bd5454ca70b71ed80204832ec7
3
+ metadata.gz: 3a7891f16b3eae78cc834f589cdd23b17a272a84cc3073ab9e8565a0c5b7bb5c
4
+ data.tar.gz: 59448475061016e496a8b957c2bfcf6421be156a098cfa6f1ded20a0897905c8
5
5
  SHA512:
6
- metadata.gz: 9591e051844cf72bcd26df553c0e4c745b7a430111cdbc3c5e5ef3e0aa25a3b78d3a9479b3821f8a1e9d1055c3256f2b8bd9c352ed34656a35cb0c58e4a60e94
7
- data.tar.gz: ae40d2fefa9a9dcd234b0f158c2dd2dec3440c0c2ddf72143bb176eb221736c14b153aa10093e801e4210e36b648071c95f2b30bd71d8d1e6a1eec4c1a9f7f4c
6
+ metadata.gz: f66d9368405b2e33acbc7d7ac30b3d9197855a9df5b592502741e1c5a2f0efbe6fa81cf6d0884e8a81df90a0dae8f8f4964f16d9d66a70b98a8ac52b96de3b77
7
+ data.tar.gz: dbb2ad769d72f8075a7749754eb6501814bcecc96336e6a4ded66a549c4f56429475fea90ab6bd1c63a09d5e8cf464f64e7e87ac17d19fb31005a1bac76fc03b
data/.codeclimate.yml CHANGED
@@ -12,5 +12,5 @@ plugins:
12
12
  rubocop:
13
13
  enabled: true
14
14
  config: ".rubocop_cc.yml"
15
- channel: rubocop-0-82
15
+ channel: rubocop-1-56-3
16
16
  version: '2'
@@ -12,12 +12,12 @@ jobs:
12
12
  strategy:
13
13
  matrix:
14
14
  ruby-version:
15
- - '2.6'
16
- - '2.7'
17
15
  - '3.0'
16
+ - '3.1'
18
17
  rails-version:
19
18
  - '6.0'
20
19
  - '6.1'
20
+ - '7.0'
21
21
  env:
22
22
  TEST_RAILS_VERSION: ${{ matrix.rails-version }}
23
23
  CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
@@ -34,4 +34,4 @@ jobs:
34
34
  - name: Report code coverage
35
35
  if: ${{ github.ref == 'refs/heads/master' && matrix.ruby-version == '3.0' && matrix.rails-version == '6.1' }}
36
36
  continue-on-error: true
37
- uses: paambaati/codeclimate-action@v5
37
+ uses: paambaati/codeclimate-action@v6
data/CHANGELOG.md CHANGED
@@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.4.1] - 2024-03-06
10
+ ### Added
11
+ - Drop active_support and more_core_extensions dependency [[#115]](https://github.com/ManageIQ/manageiq-api-client/pull/115)
12
+ - Add rails 7 support [[#114]](https://github.com/ManageIQ/manageiq-api-client/pull/114)
13
+
9
14
  ## [0.4.0] - 2023-10-16
10
15
  ### Added
11
16
  - Add Bearer token support [[#113]](https://github.com/ManageIQ/manageiq-api-client/pull/113)
data/Gemfile CHANGED
@@ -7,9 +7,14 @@ gemspec
7
7
  dev_gemfile = File.expand_path("Gemfile.dev.rb", __dir__)
8
8
  eval_gemfile(dev_gemfile) if File.exist?(dev_gemfile)
9
9
 
10
- case ENV['TEST_RAILS_VERSION']
11
- when "6.0"
12
- gem "activesupport", "~>6.0.4"
13
- when "6.1"
14
- gem "activesupport", "~>6.1.4"
15
- end
10
+ minimum_version =
11
+ case ENV['TEST_RAILS_VERSION']
12
+ when "6.0"
13
+ "~>6.0.4"
14
+ when "7.0"
15
+ "~>7.0.8"
16
+ else
17
+ "~>6.1.4"
18
+ end
19
+
20
+ gem "activesupport", minimum_version
@@ -1,6 +1,7 @@
1
1
  module ManageIQ
2
2
  module API
3
3
  class Client
4
+ extend Forwardable
4
5
  attr_reader :client_options
5
6
  attr_reader :logger
6
7
  attr_reader :url
@@ -62,7 +63,7 @@ module ManageIQ
62
63
  load_definitions
63
64
  end
64
65
 
65
- delegate :get, :post, :put, :patch, :delete, :options, :error, :to => :connection
66
+ def_delegators :connection, :get, :post, :put, :patch, :delete, :options, :error
66
67
 
67
68
  private
68
69
 
@@ -2,6 +2,8 @@ module ManageIQ
2
2
  module API
3
3
  class Client
4
4
  class Connection
5
+ extend Forwardable
6
+
5
7
  attr_reader :url
6
8
  attr_reader :authentication
7
9
  attr_reader :client
@@ -9,7 +11,7 @@ module ManageIQ
9
11
  attr_reader :response
10
12
  attr_reader :error
11
13
 
12
- delegate :url, :authentication, :to => :client
14
+ def_delegators :client, :url, :authentication
13
15
 
14
16
  API_PREFIX = "/api".freeze
15
17
  CONTENT_TYPE = "application/json".freeze
@@ -58,12 +60,12 @@ module ManageIQ
58
60
  end
59
61
 
60
62
  def api_path(path)
61
- if path.to_s.starts_with?(url.to_s)
63
+ if path.to_s.start_with?(url.to_s)
62
64
  path.to_s
63
65
  elsif path.to_s.blank?
64
66
  URI.join(url, API_PREFIX).to_s
65
67
  else
66
- URI.join(url, path.to_s.starts_with?(API_PREFIX) ? path.to_s : "#{API_PREFIX}/#{path}").to_s
68
+ URI.join(url, path.to_s.start_with?(API_PREFIX) ? path.to_s : "#{API_PREFIX}/#{path}").to_s
67
69
  end
68
70
  end
69
71
 
@@ -74,10 +76,17 @@ module ManageIQ
74
76
  faraday.options.open_timeout = @connection_options[:open_timeout] if @connection_options[:open_timeout]
75
77
  faraday.options.timeout = @connection_options[:timeout] if @connection_options[:timeout]
76
78
  faraday.response(:logger, client.logger)
77
- faraday.use FaradayMiddleware::FollowRedirects, :limit => 3, :standards_compliant => true
78
- faraday.adapter(Faraday.default_adapter) # make requests with Net::HTTP
79
+ faraday.response(:follow_redirects, :limit => 3, :standards_compliant => true)
80
+ # make requests with Net::HTTP
81
+ faraday.adapter(Faraday.default_adapter)
79
82
  if authentication.token.blank? && authentication.miqtoken.blank? && authentication.bearer_token.blank?
80
- faraday.basic_auth(authentication.user, authentication.password)
83
+ if faraday.respond_to?(:basic_auth)
84
+ # faraday 1.0
85
+ faraday.basic_auth(authentication.user, authentication.password)
86
+ else
87
+ # faraday 2.0
88
+ faraday.request(:authorization, :basic, authentication.user, authentication.password)
89
+ end
81
90
  end
82
91
  end
83
92
  end
@@ -105,11 +114,11 @@ module ManageIQ
105
114
 
106
115
  def check_response
107
116
  if response.status == 404
108
- message = json_response.fetch_path("error", "message") || json_response["error"]
117
+ message = json_response["error"].kind_of?(String) ? json_response["error"] : json_response.dig("error", "message")
109
118
  raise ManageIQ::API::Client::ResourceNotFound, message
110
119
  elsif response.status >= 400
111
120
  @error = ManageIQ::API::Client::Error.new(response.status, json_response)
112
- raise @error.message
121
+ raise ManageIQ::API::Client::Exception, @error.message || "Empty Response"
113
122
  end
114
123
  end
115
124
  end
@@ -2,6 +2,7 @@ module ManageIQ
2
2
  module API
3
3
  class Client
4
4
  class Resource
5
+ extend Forwardable
5
6
  include ActionMixin
6
7
 
7
8
  CUSTOM_INSPECT_EXCLUSIONS = [:@collection].freeze
@@ -21,7 +22,7 @@ module ManageIQ
21
22
  attr_reader :collection
22
23
  attr_reader :actions
23
24
 
24
- delegate :client, :to => :collection
25
+ def_delegators :collection, :client
25
26
 
26
27
  def initialize(collection, resource_hash)
27
28
  raise "Cannot instantiate a Resource directly" if instance_of?(Resource)
@@ -1,7 +1,7 @@
1
1
  module ManageIQ
2
2
  module API
3
3
  class Client
4
- VERSION = "0.4.0".freeze
4
+ VERSION = "0.4.1".freeze
5
5
  end
6
6
  end
7
7
  end
@@ -1,10 +1,9 @@
1
1
  require "active_support"
2
2
  require "active_support/core_ext"
3
3
  require "faraday"
4
- require "faraday_middleware"
4
+ require "faraday/follow_redirects"
5
+ require 'forwardable'
5
6
  require "json"
6
- require "more_core_extensions/all"
7
- require "pp"
8
7
  require "query_relation"
9
8
 
10
9
  require "manageiq/api/client/client"
@@ -23,11 +23,10 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.add_dependency "activesupport", ">= 5.0", "< 7.0"
27
- spec.add_dependency "faraday", "~> 1.0"
28
- spec.add_dependency "faraday_middleware", "~> 1.0"
26
+ spec.add_dependency "activesupport", ">= 6.0", "<7.1"
27
+ spec.add_dependency "faraday", ">= 1.0", "< 3.0"
28
+ spec.add_dependency "faraday-follow_redirects"
29
29
  spec.add_dependency "json", "~> 2.3"
30
- spec.add_dependency "more_core_extensions"
31
30
  spec.add_dependency "query_relation"
32
31
 
33
32
  spec.add_development_dependency "bundler"
data/renovate.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "config:recommended"
5
+ ]
6
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manageiq-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alberto Bellotti
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-10-16 00:00:00.000000000 Z
12
+ date: 2024-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -17,48 +17,54 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '5.0'
20
+ version: '6.0'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '7.0'
23
+ version: '7.1'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: '5.0'
30
+ version: '6.0'
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '7.0'
33
+ version: '7.1'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: faraday
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.0'
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.0'
41
44
  type: :runtime
42
45
  prerelease: false
43
46
  version_requirements: !ruby/object:Gem::Requirement
44
47
  requirements:
45
- - - "~>"
48
+ - - ">="
46
49
  - !ruby/object:Gem::Version
47
50
  version: '1.0'
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.0'
48
54
  - !ruby/object:Gem::Dependency
49
- name: faraday_middleware
55
+ name: faraday-follow_redirects
50
56
  requirement: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - "~>"
58
+ - - ">="
53
59
  - !ruby/object:Gem::Version
54
- version: '1.0'
60
+ version: '0'
55
61
  type: :runtime
56
62
  prerelease: false
57
63
  version_requirements: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - "~>"
65
+ - - ">="
60
66
  - !ruby/object:Gem::Version
61
- version: '1.0'
67
+ version: '0'
62
68
  - !ruby/object:Gem::Dependency
63
69
  name: json
64
70
  requirement: !ruby/object:Gem::Requirement
@@ -73,20 +79,6 @@ dependencies:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
81
  version: '2.3'
76
- - !ruby/object:Gem::Dependency
77
- name: more_core_extensions
78
- requirement: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- type: :runtime
84
- prerelease: false
85
- version_requirements: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
82
  - !ruby/object:Gem::Dependency
91
83
  name: query_relation
92
84
  requirement: !ruby/object:Gem::Requirement
@@ -233,6 +225,7 @@ files:
233
225
  - lib/manageiq/api/client/version.rb
234
226
  - lib/manageiq_api_client.rb
235
227
  - manageiq-api-client.gemspec
228
+ - renovate.json
236
229
  homepage: http://github.com/ManageIQ/manageiq-api-client
237
230
  licenses:
238
231
  - MIT
@@ -252,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
245
  - !ruby/object:Gem::Version
253
246
  version: '0'
254
247
  requirements: []
255
- rubygems_version: 3.2.33
248
+ rubygems_version: 3.3.27
256
249
  signing_key:
257
250
  specification_version: 4
258
251
  summary: ManageIQ API Client