Class: Bricolage::Parameters::CommandLineOptionHandler
- Inherits:
-
Object
- Object
- Bricolage::Parameters::CommandLineOptionHandler
- Defined in:
- lib/bricolage/parameters.rb
Overview
Handles param values given by command line options (e.g. –dest-table=t). Declarations + option_args -> IntermediateValues
Instance Method Summary collapse
- #define_options(parser) ⇒ Object
-
#initialize(decls) ⇒ CommandLineOptionHandler
constructor
A new instance of CommandLineOptionHandler.
- #values ⇒ Object
Constructor Details
#initialize(decls) ⇒ CommandLineOptionHandler
Returns a new instance of CommandLineOptionHandler.
107 108 109 110 111 |
# File 'lib/bricolage/parameters.rb', line 107 def initialize(decls) @decls = decls # Declarations @values = {} # {name => a} @vars = Variables.new end |
Instance Method Details
#define_options(parser) ⇒ Object
113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/bricolage/parameters.rb', line 113 def (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 ⇒ Object
127 128 129 |
# File 'lib/bricolage/parameters.rb', line 127 def values IntermediateValues.new(@decls, @values, @vars) end |