class Bricolage::Parameters::CommandLineOptionHandler

Handles param values given by command line options (e.g. –dest-table=t). Declarations + option_args -> IntermediateValues

Public Class Methods

new(decls) click to toggle source
# File lib/bricolage/parameters.rb, line 107
def initialize(decls)
  @decls = decls   # Declarations
  @values = {}     # {name => a}
  @vars = Variables.new
end

Public Instance Methods

define_options(parser) click to toggle source
# File lib/bricolage/parameters.rb, line 113
def define_options(parser)
  @decls.each do |decl|
    desc = (decl.optional? ? '[optional] ' : '') + decl.description
    arg_spec = decl.have_arg? ? "=#{decl.arg_spec}" : ''
    parser.on("--#{decl.option_name}#{arg_spec}", desc) {|arg|
      @values[decl.name] = decl.parse_option_value(arg, @values[decl.name])
    }
  end
  parser.on('-v', '--variable=NAME=VALUE', 'Set variable.') {|name_value|
    name, value = name_value.split('=', 2)
    @vars.add Variable.new(name, value)
  }
end
values() click to toggle source
# File lib/bricolage/parameters.rb, line 127
def values
  IntermediateValues.new(@decls, @values, @vars)
end