Packages
io_ansi_table
0.1.9
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.ex
defmodule IO.ANSI.Table do
@moduledoc false
alias IO.ANSI.Table.Style
# Functions for iex session...
# E.g. IO.ANSI.Table.print_people :green_mult
def people do
[
%{
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
}
]
end
def headers do
[:name, :date_of_birth, :likes, :height, :weight, :bmi]
end
def key_headers do
[:date_of_birth, :likes]
end
def header_fixes do
%{~r/^bmi$/i => "BMI", ~r/\sof\s/i => "\s\of\s"}
end
def margins do
[top: 0, bottom: 0, left: 2]
end
def print_people(style) do
alias IO.ANSI.Table.Formatter
Formatter.print_table(
people(), 11, true, style,
headers: headers(), key_headers: key_headers(),
header_fixes: header_fixes(), margins: margins()
)
end
def styles do
" &style&filler - &rank - ¬e"
|> Style.texts(&IO.puts/1)
|> length
end
def people_sorted do
Enum.sort_by people(), &key_for/1
end
def key_for(person) do
Enum.map_join key_headers(), &person[&1]
end
end