Packages
io_ansi_table
1.0.39
1.0.40
1.0.39
1.0.38
1.0.37
1.0.36
1.0.34
1.0.33
1.0.32
1.0.31
1.0.30
1.0.29
1.0.28
1.0.27
1.0.26
1.0.25
1.0.24
1.0.23
1.0.22
1.0.21
1.0.20
1.0.19
1.0.18
1.0.17
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.4.32
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.29
0.3.28
0.3.27
0.3.26
0.3.25
0.3.24
0.3.23
0.3.22
0.3.21
0.3.20
0.3.19
0.3.18
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Writes data to "stdio" in a table with borders and colors. Can choose a table style to change the look of the table.
Current section
Files
Jump to
Current section
Files
lib/io/ansi/table/spec/column_widths.ex
defmodule IO.ANSI.Table.Spec.ColumnWidths do
@moduledoc """
Derives the column widths of a table.
"""
alias IO.ANSI.Table.Spec.Rows
alias IO.ANSI.Table.{Column, Spec}
@doc """
Derives the column widths of a table.
## Examples
iex> alias IO.ANSI.Table.Spec.{ColumnWidths, Headings, Rows}
iex> alias IO.ANSI.Table.Spec
iex> spec = Spec.new([:c4, :c1, :c2])
iex> maps = [%{c1: 11, c2: 12, c4: 14}, %{c1: 21, c2: 22, c4: :r2c4}]
iex> spec = Headings.derive_and_put(spec)
iex> spec = Rows.derive_and_put(spec, maps)
iex> spec = ColumnWidths.derive_and_put(spec)
iex> %Spec{column_widths: column_widths} = spec
iex> column_widths
[4, 2, 2]
"""
@spec derive_and_put(Spec.t()) :: Spec.t()
def derive_and_put(
%Spec{
headings: headings,
rows: rows,
max_width: max
} = spec
) do
widths = [headings | rows] |> Rows.transpose() |> Column.widths(max)
put_in(spec.column_widths, widths)
end
end