Packages
io_ansi_table
0.1.18
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/ie.ex
defmodule IE do
@moduledoc false
alias IO.ANSI.Table.{Formatter, Style}
# Functions for iex session...
#
# Examples:
# require IE
# IE.use
# print_people :green_mult
# print_people :green_mult, 9
# print_people :as_keywords, :black_mult
# print_people :as_keywords, :black_mult, 9
# styles()
# people()
# people :as_keywords
# people_sorted()
# key_for(List.first people())
# key_for(List.first people :as_keywords)
defmacro use do
quote do
import IE
alias IO.ANSI.Table.{Config, Formatter, Formatter.Helper, Style}
:ok
end
end
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 people(:as_keywords) do
Enum.map(IE.people, &Keyword.new/1) # people as keywords
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/ of /i => " of "
}
end
def margins do
[top: 0, bottom: 0, left: 2]
end
def print_people(style) do
Formatter.print_table(
people(), length(people()), true, style,
headers: headers(), key_headers: key_headers(),
header_fixes: header_fixes(), margins: margins()
)
end
def print_people(:as_keywords, style) do
Formatter.print_table(
people(:as_keywords), length(people()), true, style,
headers: headers(), key_headers: key_headers(),
header_fixes: header_fixes(), margins: margins()
)
end
def print_people(style, max_width) do
Formatter.print_table(
people(), length(people()), true, style,
headers: headers(), key_headers: key_headers(),
header_fixes: header_fixes(), margins: margins(),
max_width: max_width
)
end
def print_people(:as_keywords, style, max_width) do
Formatter.print_table(
people(:as_keywords), length(people()), true, style,
headers: headers(), key_headers: key_headers(),
header_fixes: header_fixes(), margins: margins(),
max_width: max_width
)
end
def styles do
format = IO.ANSI.format [
:light_magenta, " &style&filler" ,
:reset , " - &rank - ¬e"
]
"#{format}"
|> Style.texts(&IO.puts/1)
|> length
end
def people_sorted do
Enum.sort_by people(), &key_for/1
end
def key_for(person) do
Formatter.key_for person, key_headers()
end
end