Packages
io_ansi_table
0.3.2
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)
# 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_people([:pretty_alt, :dotted_alt, :medium_alt])
# print_people()
alias IO.ANSI.Table
alias IO.ANSI.Table.Style
require MapSorter
@align_specs [center: :date_of_birth, right: :weight]
@headers [:name, :date_of_birth, :likes, :height, :weight, :bmi]
@header_fixes %{~r[Bmi] => "BMI"}
@margins [top: 1, bottom: 0]
@people [
%{
name: "Mike", likes: "ski, arts", date_of_birth: "1992-04-15",
height: ~s[6' 0"], weight: "176 lb", bmi: 23.9
},
%{
name: "Mary", likes: "travels" , date_of_birth: "1992-04-15",
height: ~s[5' 6"], weight: "166 lb", bmi: 26.8
},
%{
name: "Ann" , likes: "reading" , date_of_birth: "1992-04-15",
height: ~s[6' 1"], weight: "187 lb", bmi: 24.7
},
%{
name: "Ray" , likes: "cycling" , date_of_birth: "1977-08-28",
height: ~s[6' 0"], weight: "141 lb", bmi: 19.1
},
%{
name: "Bill", likes: "karate" , date_of_birth: "1977-08-28",
height: ~s[5' 8"], weight: "119 lb", bmi: 18.1
},
%{
name: "Joe" , likes: "boxing" , date_of_birth: "1977-08-28",
height: "1.82 m" , weight: "69 kg" , bmi: 20.8
},
%{
name: "Jill", likes: "cooking" , date_of_birth: "1976-09-28",
height: "1.76 m" , weight: "80 kg" , bmi: 25.8
}
]
@sort_specs [:date_of_birth, desc: :likes]
defmacro __using__(_options) do
quote do
import IO.ANSI.Table.IE
alias IO.ANSI.Table
alias IO.ANSI.Table.{Column, Config, Formatter, Heading}
alias IO.ANSI.Table.{Line, Line_type, Row, 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 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