Sha256: 3860f2034914a12604fc7408977ea0466d7c81e121617fd2e59ac9ff73054869

Contents?: true

Size: 900 Bytes

Versions: 36

Compression:

Stored size: 900 Bytes

Contents

class KuberKit::Core::ContextHelper::ContextVars
  attr_reader :parent, :parent_name

  def initialize(context_vars, parent_name = nil, parent = nil)
    @context_vars = context_vars
    @parent_name  = parent_name
    @parent = parent
  end

  def method_missing(name, *args)
    if args.size > 0
      raise ArgumentError.new("context args does not accept any arguments")
    end

    value = @context_vars.fetch(name) do
      raise(KuberKit::Error, "build arg '#{format_arg(name)}' is not defined, available args: #{@context_vars.inspect}")
    end

    if value.is_a?(Hash)
      return self.class.new(value, name, self)
    end

    value
  end

  private

  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
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
kuber_kit-0.6.1 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.6.0 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.10 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.9 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.8 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.7 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.6 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.5 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.4 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.3 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.2 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.1 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.5.0 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.4.9 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.4.8 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.4.7 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.4.6 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.4.5 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.4.4 lib/kuber_kit/core/context_helper/context_vars.rb
kuber_kit-0.4.3 lib/kuber_kit/core/context_helper/context_vars.rb