Packages
io_ansi_table
0.4.21
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/config.ex
defmodule IO.ANSI.Table.Config do
@moduledoc """
Gets table properties.
"""
use PersistConfig
alias IO.ANSI.Table.{Column, Style}
@default_align_specs Application.get_env(@app, :default_align_specs)
@default_bell Application.get_env(@app, :default_bell)
@default_count Application.get_env(@app, :default_count)
@default_headers Application.get_env(@app, :default_headers)
@default_header_fixes Application.get_env(@app, :default_header_fixes)
@default_margins Application.get_env(@app, :default_margins)
@default_sort_specs Application.get_env(@app, :default_sort_specs)
@default_sort_symbols Application.get_env(@app, :default_sort_symbols)
@default_style Application.get_env(@app, :default_style)
@max_width_range Application.get_env(@app, :max_width_range)
@lower_max_width @max_width_range.first
@upper_max_width @max_width_range.last
@spec align_specs() :: [Column.align_spec()]
def align_specs() do
@app
|> Application.get_env(:align_specs, @default_align_specs)
|> align_specs()
end
@spec align_specs(any) :: [Column.align_spec()]
def align_specs(any) when is_list(any), do: any
def align_specs(_), do: @default_align_specs
@spec bell() :: boolean
def bell() do
@app
|> Application.get_env(:bell, @default_bell)
|> bell()
end
@spec bell(any) :: boolean
def bell(any) when is_boolean(any), do: any
def bell(_), do: @default_bell
@spec count() :: integer
def count() do
@app
|> Application.get_env(:count, @default_count)
|> count()
end
@spec count(any) :: integer
def count(any) when is_integer(any), do: any
def count(_), do: @default_count
@spec headers() :: [any]
def headers() do
@app
|> Application.get_env(:headers, @default_headers)
|> headers()
end
@spec headers(any) :: [any]
def headers(any) when is_list(any), do: any
def headers(_), do: @default_headers
@spec header_fixes() :: map
def header_fixes() do
@app
|> Application.get_env(:header_fixes, @default_header_fixes)
|> header_fixes()
end
@spec header_fixes(any) :: map
def header_fixes(any) when is_map(any), do: any
def header_fixes(_), do: @default_header_fixes
@spec margins() :: Keyword.t()
def margins() do
@app
|> Application.get_env(:margins, @default_margins)
|> margins()
end
@spec margins(any) :: Keyword.t()
def margins(any) when is_list(any) do
if Keyword.keyword?(any), do: any, else: @default_margins
end
def margins(_), do: @default_margins
@spec max_width() :: Column.width()
def max_width() do
@app
|> Application.get_env(:max_width, @upper_max_width)
|> max_width()
end
@spec max_width(any) :: Column.width()
def max_width(any) when is_integer(any) do
cond do
any < @lower_max_width -> @lower_max_width
any > @upper_max_width -> @upper_max_width
true -> any
end
end
def max_width(_), do: @upper_max_width
@spec sort_specs() :: [Column.sort_spec()]
def sort_specs() do
@app
|> Application.get_env(:sort_specs, @default_sort_specs)
|> sort_specs()
end
@spec sort_specs(any) :: [Column.sort_spec()]
def sort_specs(any) when is_list(any), do: any
def sort_specs(_), do: @default_sort_specs
@spec sort_symbols() :: Keyword.t()
def sort_symbols() do
@app
|> Application.get_env(:sort_symbols, @default_sort_symbols)
|> sort_symbols()
end
@spec sort_symbols(any) :: Keyword.t()
def sort_symbols(any) when is_list(any) do
if Keyword.keyword?(any), do: any, else: @default_sort_symbols
end
def sort_symbols(_), do: @default_sort_symbols
@spec style() :: Style.t()
def style() do
@app
|> Application.get_env(:style, @default_style)
|> style()
end
@spec style(any) :: Style.t()
def style(any) when is_atom(any) do
if Enum.member?(Style.styles(), any), do: any, else: @default_style
end
def style(_), do: @default_style
end