IO ANSI Table v0.1.16 IO.ANSI.Table.Style

Defines functions to retrieve properties of predefined table styles.

Summary

Functions

Retrieves the border attribute of a given table style and line/row type

Retrieves the border widths of a given table style and line/row type

Retrieves the borders of a given table style and line/row type

Retrieves the dash of a given table style and line/row type

Retrieves the filler attribute of a given table style and line/row type

Retrieves the key attribute of a given table style and line/row type

Retrieves the line types of a given table style

Retrieves the non key attribute of a given table style and line/row type

Retrieves the table style for a given table style tag

Retrieves the table style tag for a given table style

Retrieves a list of interpolated texts (one per table style) and optionally passes each interpolated text to a function

Functions

border_attr(style, type)
border_attr(atom, atom) :: [atom] | atom | nil

Retrieves the border attribute of a given table style and line/row type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.border_attr(:green, :top)
[:light_yellow, :light_green_background]
border_widths(style, type)
border_widths(atom, atom) :: {[...], [...], [...]} | nil

Retrieves the border widths of a given table style and line/row type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.border_widths(:plain, :bottom)
{[2, 0], [0, 3, 0], [0, 2]}

iex> alias IO.ANSI.Table.Style
iex> Style.border_widths(:plain, :header)
{[1, 1], [1, 1, 1], [1, 1]}
borders(style, type)
borders(atom, atom) :: {String.t, String.t, String.t} | nil

Retrieves the borders of a given table style and line/row type.

Examples

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

iex> alias IO.ANSI.Table.Style
iex> Style.borders(:cyan, :row)
{"║", "║", "║"}
dash(style, type)
dash(atom, atom) :: String.t | nil

Retrieves the dash of a given table style and line/row type.

Examples

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

iex> IO.ANSI.Table.Style
iex> Style.dash(:dark, :row)
nil
filler_attr(style, type)
filler_attr(atom, atom) :: [atom] | atom | nil

Retrieves the filler attribute of a given table style and line/row type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.filler_attr(:mixed, :row)
:light_green_background
key_attr(style, type)
key_attr(atom, atom) :: [atom] | atom | nil

Retrieves the key attribute of a given table style and line/row type.

Examples

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

iex> alias IO.ANSI.Table.Style
iex> Style.key_attr(:light, :header)
[:light_yellow, :underline]
line_types(style)
line_types(atom) :: [atom] | nil

Retrieves 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]]
non_key_attr(style, type)
non_key_attr(atom, atom) :: [atom] | atom | nil

Retrieves the non key attribute of a given table style and line/row type.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.non_key_attr(:cyan, :row)
[:black, :light_cyan_background]
style_for(tag)
style_for(String.t) :: {:ok, atom} | :error

Retrieves the table style for a given table style tag.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.style_for("light")
{:ok, :light}

iex> alias IO.ANSI.Table.Style
iex> Style.style_for("green-alt")
{:ok, :green_alt}
tag_for(style)
tag_for(atom) :: String.t | nil

Retrieves the table style tag for a given table style.

Examples

iex> alias IO.ANSI.Table.Style
iex> Style.tag_for(:light)
"light"

iex> alias IO.ANSI.Table.Style
iex> Style.tag_for(:green_alt)
"green-alt"
texts(template, fun \\ &(&1))
texts(String.t, (String.t -> any)) :: [any]

Retrieves a list of interpolated texts (one per table style) and optionally passes each interpolated text to a function.

Examples

alias IO.ANSI.Table.Style
Style.texts "  - `&style`&filler - &note\n"

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

Interpolation placeholders

  • &style - table style (e.g. “:light”)
  • &tag - table style tag (e.g. “light”)
  • &filler - padding after &style or &tag
  • &note - table style note
  • &rank - table style rank (3 digits)