Current section

Files

Jump to
simple_bar lib simple_bar.ex
Raw

lib/simple_bar.ex

defmodule SimpleBar do
@spec print_to_so(any,integer,integer) :: any
def print_to_so(item_to_return, number_done, total) do
percent_done(number_done,total)
|> progress_bar("")
|> IO.write
item_to_return
end
@spec percent_done(integer(),integer()) :: float
def percent_done(number_done,total) do
(number_done/total) * 100
end
@spec progress_bar(float,any,any) :: char_list
def progress_bar(0.0,str,percentage) do
'\r#{percentage}% Done [#{str}]'
end
def progress_bar(remaining_per,str,percentage) do
int_str = "#{str}="
progress_bar(remaining_per-1, int_str,percentage)
end
def progress_bar(remaining_per,str) do
int_str = "#{str}="
percentage = remaining_per
progress_bar(remaining_per-1, int_str,percentage)
end
end