kube_schema 1.1.0 → 1.1.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: 5a5df97d4d05999e739e9cd960f2ea75d223c3732268bafbe771579f868a12ea
4
- data.tar.gz: 1c7a808adaec124f5c050fd998cff9e87a8849eec825975f320397753f709eb0
3
+ metadata.gz: 680ff429952710d6a4bb3e2076acbec92cf626262d7d7b15e52bc46f953aecbb
4
+ data.tar.gz: fc6e69ab71e52d8d3d8a687009dff9959531c184d831f1518525088c7c4c1d70
5
5
  SHA512:
6
- metadata.gz: 932146593a565fa38b64b0ecab7952882070764acf0dd250a1ad44e5af0ea58d41212800bdbfb73b6b041260dd083909d63039469b32d653629d1746aec0d392
7
- data.tar.gz: 5c6cf9722210d5bc35b40998bd65826f539f5f6ca1a82d5fbacea24bb6004dc968773b03693a52da2c67c7a6b8b35e4433a81f59bbb78e2d7af20bf7a25c87a2
6
+ metadata.gz: c5f7d7841cf6910a66e9d227134cf71d93c77409abbba47498a4ded790ca104da352c7e3f203591cf9f80830dcaa452be22ed5ec61171809c103facf37c9cea8
7
+ data.tar.gz: c5ce8b5120dab8400045aac8dbbe95dad565c00d12fe5a048b0322492a3b850c698721ff3d37993211cee2fa98cac47f4d756af2e8ff75cd23a3aa965841f7e7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kube_schema (1.0.0)
4
+ kube_schema (1.1.0)
5
5
  black_hole_struct (~> 0.1)
6
6
  json_schemer (~> 2.5)
7
7
  rubyshell (~> 1.5)
@@ -9,17 +9,12 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- addressable (2.8.9)
13
- public_suffix (>= 2.0.2, < 8.0)
14
12
  ast (2.4.3)
15
- bigdecimal (4.0.1)
13
+ bigdecimal (4.1.1)
16
14
  black_hole_struct (0.1.3)
17
15
  diff-lcs (1.6.2)
18
16
  hana (1.3.7)
19
- json (2.19.2)
20
- json-schema (6.2.0)
21
- addressable (~> 2.8)
22
- bigdecimal (>= 3.1, < 5)
17
+ json (2.19.3)
23
18
  json_schemer (2.5.0)
24
19
  bigdecimal
25
20
  hana (~> 1.3)
@@ -27,18 +22,15 @@ GEM
27
22
  simpleidn (~> 0.2)
28
23
  language_server-protocol (3.17.0.5)
29
24
  lint_roller (1.1.0)
30
- mcp (0.8.0)
31
- json-schema (>= 4.1)
32
- parallel (1.27.0)
33
- parser (3.3.10.2)
25
+ parallel (2.0.1)
26
+ parser (3.3.11.1)
34
27
  ast (~> 2.4.1)
35
28
  racc
36
29
  prism (1.9.0)
37
- public_suffix (7.0.5)
38
30
  racc (1.8.1)
39
31
  rainbow (3.1.1)
40
- rake (13.3.1)
41
- regexp_parser (2.11.3)
32
+ rake (13.4.2)
33
+ regexp_parser (2.12.0)
42
34
  rspec (3.13.2)
43
35
  rspec-core (~> 3.13.0)
44
36
  rspec-expectations (~> 3.13.0)
@@ -52,12 +44,11 @@ GEM
52
44
  diff-lcs (>= 1.2.0, < 2.0)
53
45
  rspec-support (~> 3.13.0)
54
46
  rspec-support (3.13.7)
55
- rubocop (1.85.1)
47
+ rubocop (1.86.1)
56
48
  json (~> 2.3)
57
49
  language_server-protocol (~> 3.17.0.2)
58
50
  lint_roller (~> 1.1.0)
59
- mcp (~> 0.6)
60
- parallel (~> 1.10)
51
+ parallel (>= 1.10)
61
52
  parser (>= 3.3.0.2)
62
53
  rainbow (>= 2.2.2, < 4.0)
63
54
  regexp_parser (>= 2.9.3, < 3.0)
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kube
4
+ # Base error for all Kube gems. Catch this to handle any Kube error.
5
+ class Error < StandardError; end
6
+
7
+ # Raised when a schema version is unknown.
8
+ class UnknownVersionError < Error; end
9
+
10
+ # Raised when a version string is formatted incorrectly (e.g. "v1.33.6").
11
+ class IncorrectVersionFormat < Error; end
12
+
13
+ # Raised when a schema download fails.
14
+ class DownloadError < Error
15
+ attr_reader :url, :status_code
16
+
17
+ def initialize(message = nil, url: nil, status_code: nil)
18
+ @url = url
19
+ @status_code = status_code
20
+ super(message || "Failed to download schema: #{@url} (HTTP #{@status_code})")
21
+ end
22
+ end
23
+ end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "ostruct"
4
3
  require "black_hole_struct"
5
4
  require "json_schemer"
6
5
 
@@ -19,8 +19,6 @@ module Kube
19
19
  module SchemaCache
20
20
  BASE_URL = 'https://raw.githubusercontent.com/general-intelligence-systems/kube_schema/refs/heads/schemas'
21
21
 
22
- class DownloadError < StandardError; end
23
-
24
22
  class << self
25
23
  # Root directory for cached schemas.
26
24
  # Defaults to ~/.cache/kube_schema/schemas (or $XDG_CACHE_HOME/kube_schema/schemas).
@@ -88,7 +86,7 @@ module Kube
88
86
 
89
87
  Net::HTTP.get_response(uri).then do |response|
90
88
  unless response.is_a?(Net::HTTPSuccess)
91
- raise DownloadError, "Failed to download schema: #{url} (HTTP #{response.code})"
89
+ raise Kube::DownloadError.new(url: url, status_code: response.code)
92
90
  end
93
91
 
94
92
  FileUtils.mkdir_p(File.dirname(local))
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kube
4
4
  module Schema
5
- VERSION = "1.1.0"
5
+ VERSION = "1.1.1"
6
6
  end
7
7
  end
data/lib/kube/schema.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative '../kube/errors'
3
4
  require_relative 'schema/version'
4
5
  require_relative 'schema/resource'
5
6
  require_relative 'schema/instance'
@@ -7,9 +8,11 @@ require_relative 'schema/schema_cache'
7
8
  require_relative 'schema/schema_index'
8
9
 
9
10
  module Kube
11
+ def self.schema
12
+ Schema
13
+ end
14
+
10
15
  module Schema
11
- class UnknownVersionError < StandardError; end
12
- class IncorrectVersionFormat < StandardError; end
13
16
 
14
17
  @schema_version = nil
15
18
  @instances = {}
@@ -30,7 +33,7 @@ module Kube
30
33
  is_a_version = -> (key) { Gem::Version.correct?(key) }
31
34
 
32
35
  if key.start_with?("v") && Gem::Version.correct?(key.sub("v", ""))
33
- raise IncorrectVersionFormat,
36
+ raise Kube::IncorrectVersionFormat,
34
37
  "\nDon't preface the version with a \"v\"." \
35
38
  "\nUse Kube::Schema[\"#{key.sub("v", "")}\"] instead."
36
39
  end
@@ -39,7 +42,7 @@ module Kube
39
42
  if has_version?(key)
40
43
  @instances[key] ||= Instance.new(key)
41
44
  else
42
- raise UnknownVersionError.new(
45
+ raise Kube::UnknownVersionError.new(
43
46
  "\n#{key} is an unknown version..." +
44
47
  "\nUse `Kube::Schema.schema_versions` to get a list."
45
48
  )
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kube_schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan K
@@ -124,6 +124,7 @@ files:
124
124
  - bin/update-schema-index
125
125
  - flake.nix
126
126
  - kube_schema.gemspec
127
+ - lib/kube/errors.rb
127
128
  - lib/kube/schema.rb
128
129
  - lib/kube/schema/instance.rb
129
130
  - lib/kube/schema/resource.rb