class KuberKit::Core::ContextHelper::ContextVars
Constants
- BuildArgUndefined
Attributes
parent[R]
parent_name[R]
Public Class Methods
new(context_vars, parent_name = nil, parent = nil)
click to toggle source
# File lib/kuber_kit/core/context_helper/context_vars.rb, line 6 def initialize(context_vars, parent_name = nil, parent = nil) @context_vars = context_vars @parent_name = parent_name @parent = parent end
Public Instance Methods
get_variable_value(variable_name)
click to toggle source
# File lib/kuber_kit/core/context_helper/context_vars.rb, line 43 def get_variable_value(variable_name) value = @context_vars.fetch(variable_name) do raise(BuildArgUndefined, "build arg '#{format_arg(variable_name)}' is not defined, available args: #{@context_vars.inspect}") end if value.is_a?(Hash) return self.class.new(value, variable_name, self) end value end
method_missing(name, *args)
click to toggle source
# File lib/kuber_kit/core/context_helper/context_vars.rb, line 27 def method_missing(name, *args) if args.size > 0 raise ArgumentError.new("context args does not accept any arguments") end read(name) end
read(*variable_names)
click to toggle source
# File lib/kuber_kit/core/context_helper/context_vars.rb, line 12 def read(*variable_names) result = self variable_names.each do |var| result = result.get_variable_value(var) end result end
to_h()
click to toggle source
# File lib/kuber_kit/core/context_helper/context_vars.rb, line 35 def to_h if @context_vars.is_a?(Hash) return @context_vars else return {value: @context_vars} end end
variable_defined?(*variable_names)
click to toggle source
# File lib/kuber_kit/core/context_helper/context_vars.rb, line 20 def variable_defined?(*variable_names) read(*variable_names) return true rescue BuildArgUndefined return false end
Private Instance Methods
format_arg(name)
click to toggle source
# File lib/kuber_kit/core/context_helper/context_vars.rb, line 57 def format_arg(name) string = [@parent_name, name].compact.join(".") parent = @parent while parent do string = [parent.parent_name, string].compact.join(".") parent = parent.parent end string end