class Tabular::Habit

Overview

A class that manages the formation of a set of [Tablets][Tabular::Tablets] within the block of [Tabular.form][Tabular.form].

Defined in:

tabular/habit.cr

Instance Method Summary

Instance Method Detail

def argument(choices : Array(String), help = "", directives : Directable | Nil = nil) #

Create a [Argument][Tabular::Kind::Argument]-flavoured [Tablet][Tabular::Tablet].

  • choices: A set of possible values for the argument. If empty?, any value is accepted.
  • help: See [Tablet#help][Tabular::Tablet#help].
  • directives: See [Directive][Tabular::Directive].

[View source]
def argument(*choice, help = "", directives : Directable | Nil = nil) #

Create a [Argument][Tabular::Kind::Argument]-flavoured [Tablet][Tabular::Tablet].

  • choice: Any number of possible values for the argument. If empty?, any value is accepted.
  • help: See [Tablet#help][Tabular::Tablet#help].
  • directives: See [Directive][Tabular::Directive].

[View source]
def command(name : String, aliases = [] of String, help = "", directives : Directable | Nil = nil) #

Create a [Command][Tabular::Kind::Command]-flavoured [Tablet][Tabular::Tablet].


[View source]
def delimiters(value : String) #

Specify the global string of characters that may delimit an [Option][Tabular::Kind::Option]-falvour [Tablet][Tabular::Tablet].

Tabular.form do
  # Allows for something like `--option=`
  delimiters "="
  # Allows for something like `-option:`
  delimiters ":"
  # Allows for all of the above
  delimiters ":="
end

[View source]
def delimiters : String #

Return the global string of characters that may delimit an [Option][Tabular::Kind::Option]-falvour [Tablet][Tabular::Tablet].


[View source]
def directives(kind : Kind, value : Directable) #

Sepcify the global [Directive][Tabular::Directive] for all [Tablets][Tabular::Tablets] of kind.


[View source]
def directives(kind : Kind) : Directive #

Return the global [Directive][Tabular::Directive] for all [Tablets][Tabular::Tablets] of kind.


[View source]
def dispatch(&block : Replier) #

Yield control back to the CLI when a [Command][Tabular::Kind::Command] is matched.


[View source]
def option(name : String, *aliases : String, help = "", directives : Directable | Nil = nil, delimiters = Tabular.delimiters) #

Create a [Option][Tabular::Kind::Option]-flavoured [Tablet][Tabular::Tablet].

  • name: See [Tablet#name][Tabular::Tablet#name].
  • aliases: See [Tablet#aliases][Tabular::Tablet#aliases].
  • help: See [Tablet#help][Tabular::Tablet#help].
  • directives: See [Directive][Tabular::Directive].
  • delimiters: Ad hoc delimiters that will override [Tabular.delimiters][Tabular.delimiters].

[View source]
def option(name : String, *aliases, help = "", delimiters = Tabular.delimiters, &) #

Create a [Option][Tabular::Kind::Option]-flavoured [Tablet][Tabular::Tablet] with expected [Argument][Tabular::Kind::Argument]-flavoured [Tablet]Tabular::Tablet.

option "--opt" do
  argument "arg1_choice1", "arg1_choice2", "arg1_choice3"
  argument "arg2_choice1", "arg2_choice2"
end
  • name: See [Tablet#name][Tabular::Tablet#name].
  • aliases: See [Tablet#aliases][Tabular::Tablet#aliases].
  • help: See [Tablet#help][Tabular::Tablet#help].
  • delimiters: Ad hoc delimiters that will override [Tabular.delimiters][Tabular.delimiters].

[View source]
def size : Int32 #

Returns the number of [Tablets][Tabular::Tablets] in the [Habit][Tabular::Habit].


[View source]
def tablet(kind : Kind, *args, **kwargs) #

Create a [Tablet][Tabular::Tablet].


[View source]