Packages
io_ansi_table
0.3.13
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/ie.ex
defmodule IO.ANSI.Table.IE do
@moduledoc false
# Functions for iex session...
#
# Examples:
# use IO.ANSI.Table.IE
# people()
# people_sorted()
# people_as_keywords()
# people_sorted_as_keywords()
# print_people(:dotted_mult)
# put_env(:pretty_alt)
# people() |> Table.format()
# GenServer.stop(Server, :shutdown)
# people() |> Table.format()
# print_people(:dotted_mult)
# print_people(:dotted_mult, 9)
# print_people_as_keywords(:green_mult)
# print_people_as_keywords(:green_mult, 9)
# styles()
# styles(:light_green)
# Style.styles()
# print_islands([:medium, :medium_alt, :medium_mult])
# print_islands()
# print_people([:pretty_alt, :dotted_alt, :medium_alt])
# print_people()
# Application.put_env(:io_ansi_table, :async, true)
# r(Table)
# print_people([:pretty_alt, :dotted_alt, :medium_alt])
# print_people()
alias IO.ANSI.Table
alias IO.ANSI.Table.Style
require MapSorter
@align_specs [center: :dob, right: :weight]
@headers [:name, :dob, :likes, :bmi]
@header_fixes %{"Dob" => "DOB", "Bmi" => "BMI"}
@islands [
%{:row => 1, 1 => "]", 2 => "]", 3 => " ", 4 => " ", 5 => " ",
6 => " ", 7 => " ", 8 => " ", 9 => "_", :A => "_"},
%{:row => 2, 1 => " ", 2 => "]", 3 => " ", 4 => " ", 5 => " ",
6 => " ", 7 => " ", 8 => " ", 9 => " ", :A => " "},
%{:row => 3, 1 => "]", 2 => " ", 3 => " ", 4 => "_", 5 => " ",
6 => " ", 7 => "L", 8 => " ", 9 => " ", :A => " "},
%{:row => 4, 1 => " ", 2 => " ", 3 => "_", 4 => " ", 5 => " ",
6 => " ", 7 => "L", 8 => " ", 9 => " ", :A => " "},
%{:row => 5, 1 => " ", 2 => " ", 3 => " ", 4 => " ", 5 => " ",
6 => " ", 7 => "L", 8 => "L", 9 => " ", :A => " "},
%{:row => 6, 1 => " ", 2 => " ", 3 => "S", 4 => "S", 5 => " ",
6 => " ", 7 => " ", 8 => " ", 9 => " ", :A => " "},
%{:row => 7, 1 => " ", 2 => "S", 3 => " ", 4 => " ", 5 => " ",
6 => " ", 7 => " ", 8 => " ", 9 => " ", :A => "_"},
%{:row => 8, 1 => " ", 2 => " ", 3 => " ", 4 => " ", 5 => " ",
6 => " ", 7 => " ", 8 => " ", 9 => " ", :A => " "},
%{:row => 9, 1 => " ", 2 => " ", 3 => " ", 4 => " ", 5 => "■",
6 => " ", 7 => " ", 8 => " ", 9 => "●", :A => " "},
%{:row => 10, 1 => " ", 2 => " ", 3 => " ", 4 => " ", 5 => "■",
6 => "■", 7 => " ", 8 => " ", 9 => " ", :A => " "}
]
@margins [top: 1, bottom: 0]
# Using @people with struct dobs requires to...
# config :map_sorter, sorting_on_structs?: true
# mix deps.compile map_sorter
@people [ # struct dobs
%{name: "Mike", likes: "ski, arts", dob: ~D[1992-04-15], bmi: 23.9},
%{name: "Mary", likes: "travels" , dob: ~D[1992-04-15], bmi: 26.8},
%{name: "Ann" , likes: "reading" , dob: ~D[1992-04-15], bmi: 24.7},
%{name: "Ray" , likes: "cycling" , dob: ~D[1977-08-28], bmi: 19.1},
%{name: "Bill", likes: "karate" , dob: ~D[1977-08-28], bmi: 18.1},
%{name: "Joe" , likes: "boxing" , dob: ~D[1977-08-28], bmi: 20.8},
%{name: "Jill", likes: "cooking" , dob: ~D[1976-09-28], bmi: 25.8}
]
@people [ # string dobs
%{name: "Mike", likes: "ski, arts", dob: "1992-04-15", bmi: 23.9},
%{name: "Mary", likes: "travels" , dob: "1992-04-15", bmi: 26.8},
%{name: "Ann" , likes: "reading" , dob: "1992-04-15", bmi: 24.7},
%{name: "Ray" , likes: "cycling" , dob: "1977-08-28", bmi: 19.1},
%{name: "Bill", likes: "karate" , dob: "1977-08-28", bmi: 18.1},
%{name: "Joe" , likes: "boxing" , dob: "1977-08-28", bmi: 20.8},
%{name: "Jill", likes: "cooking" , dob: "1976-09-28", bmi: 25.8}
]
@sort_specs [:dob, desc: :likes]
@sort_symbols [asc: "▲", desc: "▼", pos: :trailing]
defmacro __using__(_options) do
quote do
import unquote(__MODULE__)
alias unquote(__MODULE__)
alias IO.ANSI.Table
alias IO.ANSI.Table.{Column, Config, Formatter, Heading}
alias IO.ANSI.Table.{Line, Line_type, Row, Server, Spec, Style}
require MapSorter
:ok
end
end
def people(), do: @people()
def people_as_keywords(), do: Enum.map(@people, &Keyword.new/1)
def print_people(styles \\ Style.styles())
def print_people(styles) when is_list(styles) do
Enum.each(styles, &print_people/1)
end
def print_people(style) do
Table.format(
@people, bell: true, count: length(@people), style: style,
headers: @headers, header_fixes: @header_fixes,
sort_specs: @sort_specs, align_specs: @align_specs,
margins: @margins
)
end
def put_env(style) do
Application.put_env(:io_ansi_table, :bell, true)
Application.put_env(:io_ansi_table, :count, length(@people))
Application.put_env(:io_ansi_table, :style, style)
Application.put_env(:io_ansi_table, :headers, @headers)
Application.put_env(:io_ansi_table, :header_fixes, @header_fixes)
Application.put_env(:io_ansi_table, :sort_specs, @sort_specs)
Application.put_env(:io_ansi_table, :align_specs, @align_specs)
Application.put_env(:io_ansi_table, :margins, @margins)
Application.put_env(:io_ansi_table, :sort_symbols, @sort_symbols)
end
def print_islands(styles \\ Style.styles())
def print_islands(styles) when is_list(styles) do
Enum.each(styles, &print_islands/1)
end
def print_islands(style) do
Table.format(
@islands, bell: false, count: 10, style: style,
headers: [:row, 1, 2, 3, 4, 5, 6, 7, 8, 9, :A],
header_fixes: %{"Row" => "", "A" => "10"},
sort_specs: [:row], align_specs: [right: :row],
margins: @margins
)
end
def print_people_as_keywords(style) do
Table.format(
people_as_keywords(), bell: true, count: length(@people), style: style,
headers: @headers, header_fixes: @header_fixes,
sort_specs: @sort_specs, align_specs: @align_specs,
margins: @margins
)
end
def print_people(style, max_width) do
Table.format(
@people, bell: true, count: length(@people), style: style,
headers: @headers, header_fixes: @header_fixes,
sort_specs: @sort_specs, align_specs: @align_specs,
margins: @margins, max_width: max_width
)
end
def print_people_as_keywords(style, max_width) do
Table.format(
people_as_keywords(), bell: true, count: length(@people), style: style,
headers: @headers, header_fixes: @header_fixes,
sort_specs: @sort_specs, align_specs: @align_specs,
margins: @margins, max_width: max_width
)
end
def styles(color \\ :light_magenta) do
chardata = [color, " &style&filler", :reset, " - &rank - ¬e"]
fragments = IO.ANSI.format(chardata)
"#{fragments}"
|> Style.texts(&IO.puts/1)
|> length()
end
def people_sorted(), do: MapSorter.sort(@people, @sort_specs)
def people_sorted_as_keywords() do
MapSorter.sort(people_as_keywords(), @sort_specs)
end
end