class KubeManifest::Spec
Attributes
_ctx[RW]
_values[RW]
Public Class Methods
new(ctx: nil, values: {})
click to toggle source
# File lib/kube_manifest/spec.rb, line 106 def initialize(ctx: nil, values: {}) @_ctx = ctx @_values = values end
Private Class Methods
as_hash(obj, stringify_keys)
click to toggle source
# File lib/kube_manifest/spec.rb, line 126 def self.as_hash(obj, stringify_keys) result = {} if obj.kind_of? ::KubeManifest::Spec keys = obj.class.class_variable_get(::KubeManifest::Describe::SPEC_VAR).keys elsif obj.kind_of? Hash keys = obj.keys else return obj end keys.each do |key| value = if obj.kind_of? ::KubeManifest::Spec obj.instance_variable_get("@#{key}") || obj.send(key) rescue nil elsif obj.kind_of? Hash obj[key] end next unless value if value.is_a?(Array) value = value.reject { |v| v.respond_to?(:empty?) && v.empty? || v.nil? } end if value.respond_to?(:empty?) && value.empty? next unless key == :emptyDir && obj.is_a?(::KubeManifest::Spec::Volume) # Preserve emptyDir: {} end k = stringify_keys ? key.to_s : key if value.kind_of? Hash result[k] = as_hash(value, stringify_keys) elsif value.kind_of? ::KubeManifest::Spec result[k] = as_hash(value, stringify_keys) elsif value.is_a? Array result[k] = value.map{|v| as_hash(v, stringify_keys) } else result[k] = value end end result end
Public Instance Methods
as_hash(stringify_keys=false)
click to toggle source
# File lib/kube_manifest/spec.rb, line 111 def as_hash(stringify_keys=false) self.class.as_hash(self, stringify_keys) end
as_yaml()
click to toggle source
# File lib/kube_manifest/spec.rb, line 115 def as_yaml self.as_hash(true).to_yaml(line_width: -1) end
empty?()
click to toggle source
# File lib/kube_manifest/spec.rb, line 119 def empty? specs = self.class.class_variable_get(::KubeManifest::Describe::SPEC_VAR).keys (self.instance_variables.map{|s|s.to_s.sub(/^@/, '')} & specs.map{|s|s.to_s}).empty? end