class Indocker::ContextArgs
Attributes
name[R]
parent[R]
Public Class Methods
new(name, context_args, parent, container = nil)
click to toggle source
# File lib/indocker/context_args.rb, line 4 def initialize(name, context_args, parent, container = nil) @name = name @parent = parent @container = container @context_args = context_args end
Public Instance Methods
method_missing(name, *args)
click to toggle source
# File lib/indocker/context_args.rb, line 11 def method_missing(name, *args) if args.size > 0 raise ArgumentError.new("context args does not accept any arguments") end value = @context_args.fetch(name) do Indocker.logger.warn("build arg '#{format_arg(name)}' is not defined#{@container ? " for container :#{@container.name}" : ""}") Indocker.logger.warn("available args: #{@context_args.inspect}") nil end if value.is_a?(Hash) Indocker::ContextArgs.new(name, value, self, @container) else value end end
Private Instance Methods
format_arg(name)
click to toggle source
# File lib/indocker/context_args.rb, line 32 def format_arg(name) string = name parent = @parent while parent do name = parent.name string = "#{name}.#{string}" if name parent = parent.parent break if !parent end string end