Packages
io_ansi_table
0.1.1
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 """
Defines functions to retrieve table config properties.
"""
Mix.Project.config[:config_path] |> Mix.Config.read! |> Mix.Config.persist
@external_resource Path.expand Mix.Project.config[:config_path]
@app Mix.Project.config[:app]
@ansi_enabled Application.get_env(@app, :ansi_enabled)
@default_margins Application.get_env(@app, :default_margins)
@line_types Application.get_env(@app, :line_types)
@doc """
Checks if ANSI coloring is enabled.
## Examples
iex> alias IO.ANSI.Table.Config
iex> Config.ansi_enabled?
true
"""
@spec ansi_enabled? :: boolean
def ansi_enabled? do
@ansi_enabled
end
@doc """
Retrieves the line types of a table.
## Examples
iex> alias IO.ANSI.Table.Config
iex> Config.line_types
[:top, :header, :separator, :data, :bottom]
"""
@spec line_types :: [atom]
def line_types do
@line_types
end
@doc ~S"""
Retrieves the top margin above a table.
## Examples
iex> alias IO.ANSI.Table.Config
iex> Config.margin_top(top: 4)
"\n\n\n\n"
"""
@spec margin_top(Keyword.t) :: String.t
def margin_top(margins) do
String.duplicate "\n", Keyword.merge(@default_margins, margins)[:top]
end
@doc ~S"""
Retrieves the bottom margin under a table.
## Examples
iex> alias IO.ANSI.Table.Config
iex> Config.margin_bottom(bottom: 3)
"\n\n\n"
"""
@spec margin_bottom(Keyword.t) :: String.t
def margin_bottom(margins) do
String.duplicate "\n", Keyword.merge(@default_margins, margins)[:bottom]
end
@doc """
Retrieves the left margin on the left-hand side of a table.
## Examples
iex> alias IO.ANSI.Table.Config
iex> Config.margin_left(left: 2)
"\s\s"
"""
@spec margin_left(Keyword.t) :: String.t
def margin_left(margins) do
String.duplicate "\s", Keyword.merge(@default_margins, margins)[:left]
end
end