A printf / sprintf library for Elixir. It works as a wrapper for :io.format.
When learning Elixir / Erlang, remembering :io.format style is a little tough. This one can be used as syntax sugar, or an util to convert printf format to Elixir (Erlang) one.
defmodule Sample do
import ExPrintf
def test do
printf("number = %d\n", [10])
# -> number = 10
IO.puts sprintf("string = %s", ["abc"])
# -> string = abc
format = parse_printf("format = %d %.2f\n")
IO.inspect format
# -> "format = ~w ~.2f\n"
:io.format(format, [10, 10.153])
# -> format = 10 10.15
IO.puts :io_lib.format(format, [10, 10.153])
# -> format = 10 10.15
end
end
Sample.test
$ mix run sample.ex
number = 10
string = abc
"format = ~w ~.2f\n"
format = 10 10.15
$ git clone git@github.com:parroty/exprintf.git
$ cd exprintf
$ ./run_iex.sh
$ iex(1) -> parse_printf("%d")
"~w"
The following hosts a sample dynamo application for the printf format conversion.
http://dynamo-exprintf.herokuapp.com/
- Improve error checking
- Improve format support coverage
- sprintf("%05d", [-10]) results in "00-10", instead of "-00010".