kube_schema 1.3.0 → 1.3.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: a64ba0fa243fdc3e23dca962d97a3d873c1f4318ca826a1d8515fc6ec83b5a4e
4
- data.tar.gz: 96a9ce7903fa13f375888e321e3669ce7f1cbc07fc31530cf7ed7d2b6f46f188
3
+ metadata.gz: c2fbfd3f44c5ebc57a3d43c6baac8be1b64c7feed0e8c9657c951cfd530013fa
4
+ data.tar.gz: b0057e0e43fe1160f6ad166dc28f204e4e9870c76457db5a980556ac883200c5
5
5
  SHA512:
6
- metadata.gz: 2f02c6ce6cf47818f14b48de5665a1cf11c31427c3f3feed312ea61234dff2f222ea7106ea91cc38e939261e445878acffb636f47780718cad93c3866146ceb9
7
- data.tar.gz: a0cf6d5328ae0288d9caecae9b5417550d1945b18c4ef0e090f175f2abddbf9f8e395b5ebdddcc685df398270a66a4b620d5115aa547f2172eb8cf44e14b62c6
6
+ metadata.gz: 8314abd9a04c46ea3b1a2de5e5d27bbf05fb891b518881585b66d252f3a00a2cf38f33ad795a330d6477e5318edfa2ed5cdc0e6df63f06ec1f54a6a6e0629f69
7
+ data.tar.gz: facee27eab8f920216f537d14a1b403843cda17cb0ddf87980542e9693be2a219ea4ccb58d48665bda977554c7bc51b6d17fd7c1c82ad9283d3bfdc9c1def3ac
data/Gemfile.lock CHANGED
@@ -1,17 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kube_schema (1.2.3)
5
- black_hole_struct (~> 0.1)
6
- json_schemer (~> 2.5)
7
- rubyshell (~> 1.5)
4
+ kube_schema (1.3.1)
5
+ json_schemer (~> 2.5.0)
6
+ rubyshell (~> 1.5.0)
8
7
 
9
8
  GEM
10
9
  remote: https://rubygems.org/
11
10
  specs:
12
11
  ast (2.4.3)
13
12
  bigdecimal (4.1.2)
14
- black_hole_struct (0.1.3)
15
13
  diff-lcs (1.6.2)
16
14
  hana (1.3.7)
17
15
  json (2.19.3)
data/kube_schema.gemspec CHANGED
@@ -34,5 +34,4 @@ Gem::Specification.new do |spec|
34
34
 
35
35
  spec.add_dependency "rubyshell", "~> 1.5.0"
36
36
  spec.add_dependency "json_schemer", "~> 2.5.0"
37
- spec.add_dependency "black_hole_struct", "~> 0.1.0"
38
37
  end
@@ -3,18 +3,21 @@ class Hash
3
3
  def method_missing(name, *args)
4
4
  key = name.to_s
5
5
 
6
- if key.end_with("=")
6
+ if key.end_with?("=")
7
7
  self[key.chomp("=").to_sym] = args.first
8
8
 
9
- elsif key?[name.to_sym]
9
+ elsif key?(name.to_sym)
10
10
  self[name.to_sym]
11
11
 
12
+ elsif key.start_with?("to_")
13
+ super
14
+
12
15
  else
13
16
  self[name.to_sym] = {}
14
17
  end
15
18
  end
16
19
 
17
- def respond_to_missing(name, _priv = false)
18
- name.to_s.ends_with?("=") || key?(name.to_sym)
19
- end
20
+ #def respond_to_missing(name, _priv = false)
21
+ # name.to_s.end_with?("=") || key?(name.to_sym)
22
+ #end
20
23
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "black_hole_struct"
4
-
5
3
  module Kube
6
4
  module Schema
7
5
  class Resource
@@ -9,13 +7,16 @@ module Kube
9
7
  def initialize(hash = {}, &block)
10
8
  deep_symbolize_keys(self.class.defaults.to_h).then do |defaults|
11
9
 
10
+ # You are NEVER allowed to change `apiVersion` or `kind`
11
+ # Therefore, they are ONLY ever set from the self.defaults
12
+ # property.
12
13
  deep_symbolize_keys(hash).then do |symbolized|
13
14
  config = defaults.merge({
14
- metadata: symbolized.delete(:metadata),
15
- spec: symbolized.delete(:spec),
15
+ metadata: symbolized.delete(:metadata) || {},
16
+ spec: symbolized.delete(:spec) || {},
16
17
  })
17
18
 
18
- @data = BlackHoleStruct.new(config)
19
+ @data = config
19
20
  end
20
21
  end
21
22
 
@@ -68,7 +69,7 @@ module Kube
68
69
  # they are facts derived from the GVK metadata.
69
70
  def to_h
70
71
  defaults = self.class.defaults
71
- data = @data.to_h
72
+ data = @data.reject { |_, v| v.is_a?(Hash) && v.empty? }
72
73
 
73
74
  if defaults
74
75
  symbolized = deep_symbolize_keys(defaults)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kube
4
4
  module Schema
5
- VERSION = "1.3.0"
5
+ VERSION = "1.3.1"
6
6
  end
7
7
  end
data/lib/kube/schema.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../monkey_patches'
4
- require_relative '../kube/errors'
3
+ require_relative 'monkey_patches'
4
+ require_relative 'errors'
5
5
  require_relative 'schema/version'
6
6
  require_relative 'schema/resource'
7
7
  require_relative 'schema/instance'
@@ -45,7 +45,9 @@ module Kube
45
45
  )
46
46
  end
47
47
  else
48
- Instance.new(schema_version || DEFAULT_VERSION)[key]
48
+ version = schema_version || DEFAULT_VERSION
49
+ @instances[version] ||= Instance.new(version)
50
+ @instances[version][key]
49
51
  end
50
52
  end
51
53
 
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.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan K
@@ -79,20 +79,6 @@ dependencies:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
81
  version: 2.5.0
82
- - !ruby/object:Gem::Dependency
83
- name: black_hole_struct
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: 0.1.0
89
- type: :runtime
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: 0.1.0
96
82
  description: 'Abstractions are God. Let''s give praise and build on the shoulders
97
83
  of giants by using objects to represent schemas. It was written and to it became.
98
84