Module: Acclaim::Option::Parser::Regexp

Included in:
Acclaim::Option::Parser
Defined in:
lib/acclaim/option/parser/regexp.rb

Overview

Contains all regular expressions used by the parser.

Since:

  • 0.0.1

Constant Summary collapse

SHORT_SWITCH =

Regular expression for a short option switch.

Examples: -s; -_

'-mult' should match MULTIPLE_SHORT_SWITCHES, and will be split into %w(-m -u -l -t), which in turn should match this regular expression.

w is not used because it matches digits.

Since:

  • 0.0.1

/\A-[a-zA-Z_]\Z/.freeze
LONG_SWITCH =

Regular expression for a long option switch.

Examples: --long; --no-feature; --with_underscore; --_private-option; --1-1

Since:

  • 0.0.1

/\A--\w+(-\w+)*\Z/.freeze
MULTIPLE_SHORT_SWITCHES =

Regular expression for multiple short options in a single “short” switch.

Examples: -xvf; -abc; -de_f

w is not used because it matches digits.

Since:

  • 0.0.1

/\A-[a-zA-Z_]{2,}\Z/.freeze
SWITCH_PARAM_EQUALS =

Regular expression for a long switch connected to its parameters with an equal sign. Multiple parameters are be separated by commas.

Examples: --switch=PARAM; --files=f1,f2,f3; --weird=,PARAM2; --empty=,,; --none=

The reason something like '--none=' is allowed is because it will become ['--none'] when it is split up. '--empty=,,' will become ['--empty'] '--weird=,PARAM2' will become ['--weird', '', 'PARAM2'] when it is split up. What to make of those isn’t a decision for a preprocessor.

Since:

  • 0.0.1

/\A--\w+(-\w+)*=(,*\w*)*\Z/.freeze
SWITCH =

Regular expression for any kind of option switch.

Since:

  • 0.0.1

::Regexp.union(SHORT_SWITCH, LONG_SWITCH,
MULTIPLE_SHORT_SWITCHES, SWITCH_PARAM_EQUALS).freeze
ARGUMENT_SEPARATOR =

Regular expression for the string that separates options and their parameters from arguments like filenames.

Examples: --; ---

Since:

  • 0.0.1

/\A-{2,}\Z/.freeze