class Athena::Console::Input::Definition
inherits Reference
#
Represents a collection of ACON::Input::Argument
s and ACON::Input::Option
s that are to be parsed from an ACON::Input::Interface
.
Can be used to set the inputs of an ACON::Command
via the ACON::Command#definition=
method if so desired,
instead of using the dedicated methods.
Constructors#
.new(definition : ::Hash(String, ACON::Input::Option) | ::Hash(String, ACON::Input::Argument)) : self
#
.new(definition : Array(ACON::Input::Argument | ACON::Input::Option) = Array(ACON::Input::Argument | ACON::Input::Option).new)
#
.new(*definitions : ACON::Input::Argument | ACON::Input::Option) : self
#
Methods#
#<<(arguments : Array(ACON::Input::Argument | ACON::Input::Option)) : Nil
#
Adds the provided arguments to self
.
#<<(argument : ACON::Input::Argument) : Nil
#
Adds the provided argument to self
.
#<<(option : ACON::Input::Option) : Nil
#
Adds the provided options to self
.
#argument(name_or_index : String | Int32) : ACON::Input::Argument
#
Returns the ACON::Input::Argument
with the provided name_or_index,
otherwise raises ACON::Exception::InvalidArgument
if that argument is not defined.
#argument_count : Int32
#
Returns the number of ACON::Input::Argument
s defined within self
.
#argument_defaults : ::Hash
#
Returns a ::Hash
whose keys/values represent the names and default values of the ACON::Input::Argument
s defined within self
.
#arguments : ::Hash(String, ACON::Input::Argument)
#
#arguments=(arguments : Array(ACON::Input::Argument)) : Nil
#
Overrides the arguments of self
to those in the provided arguments array.
#definition=(definition : Array(ACON::Input::Argument | ACON::Input::Option)) : Nil
#
Overrides the arguments and options of self
to those in the provided definition.
#has_argument?(name_or_index : String | Int32) : Bool
#
Returns true
if self
has an argument with the provided name_or_index.
#has_negation?(name : String | Char) : Bool
#
Returns true
if self
has a negation with the provided name, otherwise false
.
#has_option?(name_or_index : String | Int32) : Bool
#
Returns true
if self
has an option with the provided name_or_index.
#has_shortcut?(name : String | Char) : Bool
#
Returns true
if self
has a shortcut with the provided name, otherwise false
.
#negation_to_name(negation : String) : String
#
Returns the name of the ACON::Input::Option
that maps to the provided negation.
#option(name_or_index : String | Int32) : ACON::Input::Option
#
Returns the ACON::Input::Option
with the provided name_or_index,
otherwise raises ACON::Exception::InvalidArgument
if that option is not defined.
#option_defaults : ::Hash
#
Returns a ::Hash
whose keys/values represent the names and default values of the ACON::Input::Option
s defined within self
.
#option_for_shortcut(shortcut : String | Char) : ACON::Input::Option
#
Returns the name of the ACON::Input::Option
with the provided shortcut.
#options : ::Hash(String, ACON::Input::Option)
#
#options=(options : Array(ACON::Input::Option)) : Nil
#
Overrides the options of self
to those in the provided options array.
#required_argument_count : Int32
#
#synopsis(short : Bool = false) : String
#
Returns an optionally short synopsis based on the ACON::Input::Argument
s and ACON::Input::Option
s defined within self
.
The synopsis being the docopt string representing the expected options/arguments.
E.g. <name> move <x> <y> [--speed=<kn>]
.
ameba:disable Metrics/CyclomaticComplexity