Sha256: cda6d285fdb004ffebd8f4e8f20ce6aad2e9f1f4b95a648ce9f88a91c066ba2f
Contents?: true
Size: 987 Bytes
Versions: 3
Compression:
Stored size: 987 Bytes
Contents
class Indocker::ContextArgs attr_reader :parent, :name def initialize(name, context_args, parent, container = nil) @name = name @parent = parent @container = container @context_args = context_args end 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}") end if value.is_a?(Hash) Indocker::ContextArgs.new(name, value, self, @container) else value end end private 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 end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
indocker-0.1.6 | lib/indocker/context_args.rb |
indocker-0.1.5 | lib/indocker/context_args.rb |
indocker-0.1.4 | lib/indocker/context_args.rb |