class Athena::Console::Style::Athena

Overview

Default implementation of ACON::Style::Interface that provides a slew of helpful methods for formatting output.

Uses ACON::Helper::AthenaQuestion to improve the appearance of questions.

protected def execute(input : ACON::Input::Interface, output : ACON::Output::Interface) : ACON::Command::Status
  style = ACON::Style::Athena.new input, output

  style.title "Some Fancy Title"

  # ...

  ACON::Command::Status::SUCCESS
end

Defined in:

style/athena.cr

Constructors

Instance Method Summary

Instance methods inherited from class Athena::Console::Style::Output

decorated=(decorated : Bool) : Nil decorated=, decorated? : Bool decorated?, formatter : ACON::Formatter::Interface formatter, formatter=(formatter : ACON::Formatter::Interface) : Nil formatter=, new_line(count : Int32 = 1) : Nil new_line, print(message, verbosity : ACON::Output::Verbosity = :normal, output_type : ACON::Output::Type = :normal) : Nil print, puts(message, verbosity : ACON::Output::Verbosity = :normal, output_type : ACON::Output::Type = :normal) : Nil puts, verbosity : ACON::Output::Verbosity verbosity, verbosity=(verbosity : ACON::Output::Verbosity) : Nil verbosity=

Constructor methods inherited from class Athena::Console::Style::Output

new(output : ACON::Output::Interface) new

Instance methods inherited from module Athena::Console::Output::Interface

decorated=(decorated : Bool) : Nil decorated=, decorated? : Bool decorated?, formatter : ACON::Formatter::Interface formatter, formatter=(formatter : ACON::Formatter::Interface) : Nil formatter=, print(message : String | Enumerable(String), verbosity : ACON::Output::Verbosity = :normal, output_type : ACON::Output::Type = :normal) : Nil print, puts(message : String | Enumerable(String), verbosity : ACON::Output::Verbosity = :normal, output_type : ACON::Output::Type = :normal) : Nil puts, verbosity : ACON::Output::Verbosity verbosity, verbosity=(verbosity : ACON::Output::Verbosity) : Nil verbosity=

Instance methods inherited from module Athena::Console::Style::Interface

ask(question : String, default : _) ask, ask_hidden(question : String) ask_hidden, caution(messages : String | Enumerable(String)) : Nil caution, choice(question : String, choices : Indexable | Hash, default = nil) choice, comment(messages : String | Enumerable(String)) : Nil comment, confirm(question : String, default : Bool = true) : Bool confirm, error(messages : String | Enumerable(String)) : Nil error, info(messages : String | Enumerable(String)) : Nil info, listing(elements : Enumerable) : Nil listing, new_line(count : Int32 = 1) : Nil new_line, note(messages : String | Enumerable(String)) : Nil note, section(message : String) : Nil section, success(messages : String | Enumerable(String)) : Nil success, text(messages : String | Enumerable(String)) : Nil text, title(message : String) : Nil title, warning(messages : String | Enumerable(String)) : Nil warning

Constructor Detail

def self.new(input : ACON::Input::Interface, output : ACON::Output::Interface) #

[View source]

Instance Method Detail

def ask(question : String, default : _) #

Helper method for asking ACON::Question questions.


[View source]
def ask(question : ACON::Question::Base) #

:inherit:


[View source]
def ask_hidden(question : String) #

Helper method for asking hidden ACON::Question questions.


[View source]
def block(messages : String | Enumerable(String), type : String | Nil = nil, style : String | Nil = nil, prefix : String = " ", padding : Bool = false, escape : Bool = true) : Nil #

Helper method for outputting blocks of messages that powers the #caution, #success, #note, etc. methods. It includes various optional parameters that can be used to print customized blocks.

If type is provided, its value will be printed within []. E.g. [TYPE].

If style is provided, each of the messages will be printed in that style.

prefix represents what each of the messages should be prefixed with.

If padding is true, empty lines will be added before/after the block.

If escape is true, each of the messages will be escaped via ACON::Formatter::Output.escape.


[View source]
def caution(messages : String | Enumerable(String)) : Nil #

:inherit:

!
! [CAUTION] Some Message
!

White text on a 3 line red background block with an empty line above/below the block.


[View source]
def choice(question : String, choices : Indexable | Hash, default = nil) #

Helper method for asking ACON::Question::Choice questions.


[View source]
def comment(messages : String | Enumerable(String)) : Nil #

:inherit:

// Some Message

White text with one empty line above/below the message(s).


[View source]
def confirm(question : String, default : Bool = true) : Bool #

Helper method for asking ACON::Question::Confirmation questions.


[View source]
def error(messages : String | Enumerable(String)) : Nil #

:inherit:

[ERROR] Some Message

White text on a 3 line red background block with an empty line above/below the block.


[View source]
def error_style : self #

Returns a new instance of self that outputs to the error output.


[View source]
def info(messages : String | Enumerable(String)) : Nil #

:inherit:

[INFO] Some Message

Green text with two empty lines above/below the message(s).


[View source]
def listing(elements : Enumerable) : Nil #

Formats and prints a bulleted list containing the provided elements.

* Item 1
* Item 2
* Item 3

White text with one empty line above/below the list.


[View source]
def listing(*elements : String) : Nil #

:inherit:

* Item 1
* Item 2
* Item 3

White text with one empty line above/below the list.


[View source]
def new_line(count : Int32 = 1) : Nil #

:inherit:


[View source]
def note(messages : String | Enumerable(String)) : Nil #

:inherit:

! [NOTE] Some Message

Green text with one empty line above/below the message(s).


[View source]
def print(messages : String | Enumerable(String), verbosity : ACON::Output::Verbosity = :normal, output_type : ACON::Output::Type = :normal) : Nil #

:inherit:


[View source]
def puts(messages : String | Enumerable(String), verbosity : ACON::Output::Verbosity = :normal, output_type : ACON::Output::Type = :normal) : Nil #

:inherit:


[View source]
def section(message : String) : Nil #

Creates a section header with the provided message.

Some Message
------------

Orange text with one empty line above/below the section.


[View source]
def success(messages : String | Enumerable(String)) : Nil #

:inherit:

 [OK] Some Message

Black text on a 3 line green background block with an empty line above/below the block.


[View source]
def text(messages : String | Enumerable(String)) : Nil #

:inherit:

Same as #puts but indented one space and an empty line above the message(s).


[View source]
def title(message : String) : Nil #

Formats and prints message as a title.

Some Message
============

Orange text with one empty line above/below the title.


[View source]
def warning(messages : String | Enumerable(String)) : Nil #

:inherit:

 [WARNING] Some Message

Black text on a 3 line orange background block with an empty line above/below the block.


[View source]