module KubeManifest::SpecUtils
Public Class Methods
child_node(field_name, field_type)
click to toggle source
# File lib/kube_manifest/spec.rb, line 58 def self.child_node(field_name, field_type) lambda do |*args, **kwargs, &blk| value = ::KubeManifest::Describe.new_value(self, field_type, *args, **kwargs, &blk) self.instance_variable_set("@#{field_name}", value) end end
child_value(field_name)
click to toggle source
# File lib/kube_manifest/spec.rb, line 92 def self.child_value(field_name) lambda do |value| instance_variable_set("@#{field_name}", value) end end
children_node(field_name, field_type)
click to toggle source
# File lib/kube_manifest/spec.rb, line 65 def self.children_node(field_name, field_type) lambda do |*args, **kwargs, &blk| if instance_variable_get("@#{field_name}").nil? instance_variable_set("@#{field_name}", []) end value = ::KubeManifest::Describe.new_value(self, field_type, *args, **kwargs, &blk) if value.is_a? Array instance_variable_get("@#{field_name}").concat(value) else instance_variable_get("@#{field_name}") << value end end end
children_value(field_name)
click to toggle source
# File lib/kube_manifest/spec.rb, line 79 def self.children_value(field_name) lambda do |value| if instance_variable_get("@#{field_name}").nil? instance_variable_set("@#{field_name}", []) end if value.is_a? Array instance_variable_get("@#{field_name}").concat(value) else instance_variable_get("@#{field_name}") << value end end end
included(base)
click to toggle source
# File lib/kube_manifest/spec.rb, line 9 def self.included(base) base.class_eval do protected def to_json(value, pretty: false) if pretty JSON.pretty_generate(value) else JSON.generate(value) end end def file(filename, rstrip: true) dir = [] dir.concat(@_ctx.cwd || []) if @_ctx dir << '.' dir.each do |d| path = File.join(d, filename) next unless File.exists? path f = File.open(path).read if rstrip return f.rstrip end return f end nil end def b64encode(value) Base64.urlsafe_encode64(value) end def manifest(value) ctx = ::KubeManifest::Runner.new(file(value), values: self._values, cwd: self._ctx.cwd).ctx ctx.as_yaml end def sha256(value) Digest::SHA2.new(256).hexdigest(value || '') end def md5(value) Digest::MD5.hexdigest(value) end end end
Public Instance Methods
b64encode(value)
click to toggle source
# File lib/kube_manifest/spec.rb, line 39 def b64encode(value) Base64.urlsafe_encode64(value) end
file(filename, rstrip: true)
click to toggle source
# File lib/kube_manifest/spec.rb, line 21 def file(filename, rstrip: true) dir = [] dir.concat(@_ctx.cwd || []) if @_ctx dir << '.' dir.each do |d| path = File.join(d, filename) next unless File.exists? path f = File.open(path).read if rstrip return f.rstrip end return f end nil end
manifest(value)
click to toggle source
# File lib/kube_manifest/spec.rb, line 43 def manifest(value) ctx = ::KubeManifest::Runner.new(file(value), values: self._values, cwd: self._ctx.cwd).ctx ctx.as_yaml end
md5(value)
click to toggle source
# File lib/kube_manifest/spec.rb, line 52 def md5(value) Digest::MD5.hexdigest(value) end
sha256(value)
click to toggle source
# File lib/kube_manifest/spec.rb, line 48 def sha256(value) Digest::SHA2.new(256).hexdigest(value || '') end
to_json(value, pretty: false)
click to toggle source
# File lib/kube_manifest/spec.rb, line 13 def to_json(value, pretty: false) if pretty JSON.pretty_generate(value) else JSON.generate(value) end end