Skip to content

abstract class Athena::Console::Input
inherits Reference #

Common base implementation of ACON::Input::Interface.

Included modules

Athena::Console::Input::Streamable

Direct known subclasses

Athena::Console::Input::ARGV Athena::Console::Input::Hash

Constructors#

.new(definition : ACON::Input::Definition | Nil = nil)#

Methods#

#argument(name : String, type : T.class) : T forall T#

Returns the value of the argument with the provided name converted to the desired type. This method is preferred over #argument since it provides better typing.

Raises an ACON::Exception::Logic if the actual argument value could not be converted to a type.

#argument(name : String) : String | Nil#

Returns the raw string value of the argument with the provided name, or nil if is optional and was not provided.

#arguments : ::Hash#

Returns a ::Hash representing the keys and values of the parsed arguments of self.

#bind(definition : ACON::Input::Definition) : Nil#

Binds the provided definition to self. Essentially provides what should be parsed from self.

#escape_token(token : String) : String#

Escapes a token via Process.quote if it contains unsafe characters.

#has_argument?(name : String) : Bool#

Returns true if self has an argument with the provided name, otherwise false.

#has_option?(name : String) : Bool#

Returns true if self has an option with the provided name, otherwise false.

#interactive=(interactive : Bool)#

Sets if self is #interactive?.

#interactive? : Bool#

Returns true if self represents an interactive input, such as a TTY.

#option(name : String, type : T.class) : T forall T#

Returns the value of the option with the provided name converted to the desired type. This method is preferred over #option since it provides better typing.

Raises an ACON::Exception::Logic if the actual option value could not be converted to a type.

#option(name : String) : String | Nil#

Returns the raw string value of the option with the provided name, or nil if is optional and was not provided.

#options : ::Hash#

Returns a ::Hash representing the keys and values of the parsed options of self.

#set_argument(name : String, value : _) : Nil#

Sets the value of the argument with the provided name.

#set_option(name : String, value : _) : Nil#

Sets the value of the option with the provided name.

#stream : IO | ::Nil#

Returns the input stream.

#stream=(stream : IO | Nil)#

Sets the input stream.

#validate : Nil#

Validates the input, asserting all of the required parameters are provided. Raises ACON::Exception::Runtime when not enough arguments are given.