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

Defines functions returning the properties of the configured table styles.

Link to this section Summary

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.

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()]

Specs

border() :: String.t()

Specs

t() :: atom()

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]
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

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()

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"]

alias IO.ANSI.Table.Style
Style.texts("  - `&style`&filler - &note", &IO.puts/1)

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