Class | Console::Arguments |
In: |
lib/facets/more/arguments.rb
|
Parent: | Object |
argv | [R] | |
arity | [R] | |
line | [R] | |
opts | [R] |
Multi-command.
Parses a chain of commands from a single command line. This assumes commands take no free standing arguments, and rather only utilize option flags.
line = "--trace rubyforge --groupid=2014 publish --copy='**/*'
This method does not support flag arity since each command in the chain could have it‘s own arity settings. So ’=’ must be used to set a flag parameter.
Returns the parsed command line as an array + hash collection of parameters, like what a Ruby method accepts. Because of the use of the hash for flags and options parameters, repeat entries can be used with this, in that case use parse directly.
Basic parser partitions the command line into flags and arguments. Flags are converted to a associative array and then the two parts are returned.
line = "--trace stamp --file=VERSION" args,keys = *parse_command(line) args #=> ["stamp"] keys #=> [["trace",true], ["file","VERSION"]]
Parse off the front flags of a command line.
line = "--trace stamp --file VERSION" argv,keys = *parse_front_flags(line) argv #=> ["stamp", "--file", "VERSION"] keys #=> [["trace", true]]
Provided an arity hash if any flags take free standing parameters.
line = "--level 4 stamp --file VERSION" argv,keys = *parse_front_flags(line, :trace => 1) argv #=> ["stamp", "--file", "VERSION"] keys #=> [["level", 4]]