View Source IO.ANSI.Table.Style (IO ANSI Table v1.0.18)

Defines functions returning various aspects of the configured table styles.

Link to this section Summary

Types

Style attribute

Table border

t()

Table style

Functions

Returns the "border attribute" of a given table style and line type.

Returns the "border spreads" of a given table style and line type.

Returns the borders of a given table style and line type.

Returns the dash of a given table style and line type.

Returns the "filler attribute" of a given table style and line type.

Converts a switch argument into a table style. E.g. green-alt in: no tx -blt green-alt 11.

Returns the "key attribute" of a given table style and line type.

Returns the "line types" of a given table style.

Returns the "non-key attribute" of a given table style and line type.

Returns the sorted list of all style IDs.

Lists all the table styles alphabetically.

Returns a list of interpolated texts (for all styles) based on template.

Converts a table style into a switch argument.

Link to this section Types

Specs

attr() :: atom() | [atom()]

Style attribute

Specs

border() :: String.t()

Table border

Specs

t() :: atom()

Table style

Link to this section Functions

Link to this function

border_attr(style, type)

View Source

Specs

border_attr(t(), IO.ANSI.Table.LineType.t()) :: attr() | nil

Returns the "border attribute" of a given table style and line type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.border_attr(:green, :top)
[:light_white, :green_background]

iex> alias IO.ANSI.Table.Style
iex> Style.border_attr(:cyan_alt, :odd_row)
[:chartreuse_yellow, :chartreuse_yellow_background]
Link to this function

border_spreads(style, type)

View Source

Specs

Returns the "border spreads" of a given table style and line type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.border_spreads(:plain, :bottom)
[[0, 2, 0], [0, 3, 0], [0, 2, 0]] # borders: "└─", "─┴─", "─┘"

iex> alias IO.ANSI.Table.Style
iex> Style.border_spreads(:plain, :header)
[[0, 1, 1], [1, 1, 1], [1, 1, 0]] # borders: "│" ,  "│" ,  "│"

Specs

borders(t(), IO.ANSI.Table.LineType.t()) :: [border()]

Returns the borders of a given table style and line type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.borders(:cyan, :bottom)
["╚═", "═╩═", "═╝"]

Specs

dash(t(), IO.ANSI.Table.LineType.t()) :: String.t() | nil

Returns the dash of a given table style and line type.

Examples

iex> IO.ANSI.Table.Style
iex> Style.dash(:dark, :top)
"═"

iex> IO.ANSI.Table.Style
iex> Style.dash(:dark, :row)
nil
Link to this function

filler_attr(style, type)

View Source

Specs

filler_attr(t(), IO.ANSI.Table.LineType.t()) :: attr() | nil

Returns the "filler attribute" of a given table style and line type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.filler_attr(:mixed, :row)
:green_background

iex> alias IO.ANSI.Table.Style
iex> Style.filler_attr(:cyan_alt, :odd_row)
:chartreuse_yellow_background

Specs

from_switch_arg(String.t()) :: {:ok, t()} | :error

Converts a switch argument into a table style. E.g. green-alt in: no tx -blt green-alt 11.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.from_switch_arg("green-alt")
{:ok, :green_alt}

iex> alias IO.ANSI.Table.Style
iex> Style.from_switch_arg("lite")
:error

Specs

key_attr(t(), IO.ANSI.Table.LineType.t()) :: attr() | nil

Returns the "key attribute" of a given table style and line type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.key_attr(:light, :row)
:chartreuse

iex> alias IO.ANSI.Table.Style
iex> Style.key_attr(:light, :header)
[:gold, :underline]

Specs

line_types(t()) :: [IO.ANSI.Table.LineType.t()]

Returns the "line types" of a given table style.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.line_types(:light)
[:top, :header, :separator, [:row], :bottom]

iex> alias IO.ANSI.Table.Style
iex> Style.line_types(:green_alt)
[:top, :header, :separator, [:even_row, :odd_row]]
Link to this function

non_key_attr(style, type)

View Source

Specs

non_key_attr(t(), IO.ANSI.Table.LineType.t()) :: attr() | nil

Returns the "non-key attribute" of a given table style and line type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.non_key_attr(:cyan, :row)
[:black, :cyan_background]

Specs

styles() :: [t()]

Returns the sorted list of all style IDs.

Examples

iex> alias IO.ANSI.Table.Style
iex> length Style.styles
36

iex> alias IO.ANSI.Table.Style
iex> Enum.take Style.styles, 7
[:bare, :barish, :cyan, :cyan_alt, :cyan_border, :cyan_mult, :dark]

Specs

table_styles() :: Keyword.t()

Lists all the table styles alphabetically.

Specs

texts(String.t()) :: [String.t()]

Returns a list of interpolated texts (for all styles) based on template.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.texts("  - `&style`&filler - &note\n") |> Enum.slice(16..18)
["  - `:green_border`          - light green border\n",
 "  - `:green_border_padded`   - light green border with extra padding\n",
 "  - `:green_border_unpadded` - light green border without padding\n"]

Interpolation placeholders

  • &style - table style (e.g. ":light_alt")
  • &arg - table style switch arg (e.g. "light-alt")
  • &filler - padding after &style or &arg
  • &note - table style note
  • &rank - table style rank (3 digits)

Specs

to_switch_arg(t()) :: String.t() | nil

Converts a table style into a switch argument.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.to_switch_arg(:green_alt)
"green-alt"

iex> alias IO.ANSI.Table.Style
iex> Style.to_switch_arg(:lite)
nil