class Object

Constants

Clasp

Main module for CLASP.Ruby library

Examples

Simple command-line, no specifications

argv = %w{ --show-all=true infile -c outfile }

args = CLASP::Arguments.new(argv)

puts args.flags.size             # => 1
puts args.flags[0]               # => -c
puts args.flags[0].name          # => -c
puts args.flags[0].inspect       # => #<CLASP::Arguments::FlagArgument:0x007f87e18d4530 @arg="-c", @given_index=2, @given_name="-c", @argument_specification=nil, @given_hyphens=1, @given_label="c", @name="-c", @extras={}>

puts args.options.size           # => 1
puts args.options[0]             # => --show-all=true
puts args.options[0].name        # => --show-all
puts args.options[0].value       # => true
puts args.options[0].inspect     # => #<CLASP::Arguments::OptionArgument:0x007f87e18d4940 @arg="--show-all=true", @given_index=0, @given_name="--show-all", @argument_specification=nil, @given_hyphens=2, @given_label="show-all", @value="true", @name="--show-all", @extras={}>

puts args.values.size            # => 2
puts args.values[0]              # => infile
puts args.values[0].given_index  # => 1
puts args.values[1]              # => outfile
puts args.values[1].given_index  # => 3

Use of the special double-slash flag to treat all subsequent arguments as values

argv = %w{ --show-all=true -- infile outfile -c }

args = CLASP::Arguments.new(argv)

puts args.flags.size             # => 0

puts args.options.size           # => 1
puts args.options[0]             # => --show-all
puts args.options[0].inspect     # => #<CLASP::Arguments::OptionArgument:0x007fd23aa3aca0 @arg="--show-all=true", @given_index=0, @given_name="--show-all", @argument_specification=nil, @given_hyphens=2, @given_label="show-all", @value="true", @name="--show-all", @extras={}>

puts args.values.size            # => 3
puts args.values[0]              # => infile
puts args.values[1]              # => outfile
puts args.values[2]              # => "-c"

Use of flag short forms

specifications = [

  CLASP.Flag('--verbose', alias: '-v'),
  CLASP.Flag('--trace-output', aliases: [ '-t', '--trace' ]),
]

argv = %w{ -trace -v }

args = CLASP::Arguments.new(argv, specifications)

puts args.flags.size        # => 2
puts args.flags[0].name     # => --trace-output
puts args.flags[1].name     # => --verbose
puts args.options.size      # => 0
puts args.values.size       # => 0

Use of flag single short forms combined

specifications = [

  CLASP.Flag('--expand', alias: '-x'),
  CLASP.Flag('--verbose', alias: '-v'),
  CLASP.Flag('--trace-output', aliases: [ '-t', '--trace' ]),
]

argv = %w{ -tvx }

args = CLASP::Arguments.new(argv, specifications)

puts args.flags.size        # => 3
puts args.options.size      # => 0
puts args.values.size       # => 0

Use of option short form

specifications = [

  CLASP.Option('--show-all', alias: '-a'),
]

argv = %w{ -c -a true infile outfile }

args = CLASP::Arguments.new(argv, specifications)

puts args.flags.size         # => 1
puts args.flags[0]           # => -c
puts args.flags[0].inspect   # => #<CLASP::Arguments::FlagArgument:0x007f8593b0ddd8 @arg="-c", @given_index=0, @given_name="-c", @argument_specification=nil, @given_hyphens=1, @given_label="c", @name="-c", @extras={}>

puts args.options.size       # => 1
puts args.options[0]         # => --show-all
puts args.options[0].inspect # => "#<CLASP::Arguments::OptionArgument:0x007f8593b0db80 @arg="-a", @given_index=1, @given_name="-a", @argument_specification=#<CLASP::OptionArgument:0x007f8593b2ea10 @name="--show-all", @aliases=["-a"], @help=nil, @values_range=[], @default_value=nil, @extras={}>, @given_hyphens=1, @given_label="a", @value="true", @name="--show-all", @extras={}>"

puts args.values.size        # => 2
puts args.values[0]          # => infile
puts args.values[1]          # => outfile

Classes of interest

Functions of interest