class Athena::Console::Input::Option
inherits Reference
#
Represents a value (or array of ) provided to a command as optional un-ordered flags that be setup to accept a value, or represent a boolean flag. Options can also have an optional shortcut, default value, and/or description.
Options are specified with two dashes, or one dash when using the shortcut.
For example, ./console test --yell --dir=src -v
.
We have one option representing a boolean value, providing a value to another, and using the shortcut of another.
Options can be added via the ACON::Command#option
method,
or by instantiating one manually as part of an ACON::Input::Definition
.
The value of the option could then be accessed via one of the ACON::Input::Interface#option
overloads.
See ACON::Input::Interface
for more examples on how arguments/options are parsed, and how they can be accessed.
Constructors#
.new(name : String, shortcut : String | Enumerable(String) | Nil = nil, value_mode : ACON::Input::Option::Value = :none, description : String = "", default = nil, suggested_values : Array(String) | Proc(ACON::Completion::Input, Array(String)) | Nil = nil)
#
Methods#
#accepts_value? : Bool
#
Returns true
if self
is able to accept a value, otherwise false
.
#complete(input : ACON::Completion::Input, suggestions : ACON::Completion::Suggestions) : Nil
#
Determines what values should be added to the possible suggestions based on the provided input.
#default(type : T.class) : T forall T
#
Returns the default value of self
, if any, converted to the provided type.
#has_completion? : Bool
#
Returns true
if this option is able to suggest values, otherwise false
#is_array? : Bool
#
Returns true
if self
is a required argument, otherwise false
.
ameba:disable Naming/PredicateName
#value_mode : ACON::Input::Option::Value
#
Returns the ACON::Input::Option::Value
of self
.
#value_optional? : Bool
#
Returns true
if self
accepts a value but is optional, otherwise false
.
#value_required? : Bool
#
Returns true
if self
accepts a value and it is required, otherwise false
.