exprintf icon indicating copy to clipboard operation
exprintf copied to clipboard

A printf / sprintf library for Elixir. It works as a wrapper for :io.format.

ExPrintf Build Status

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.

Examples

Basic Usage

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

Sample Execution

$ mix run sample.ex
number = 10
string = abc
"format = ~w ~.2f\n"
format = 10 10.15

iex

$ git clone [email protected]:parroty/exprintf.git
$ cd exprintf
$ ./run_iex.sh
$ iex(1) -> parse_printf("%d")
"~w"

Dynamo

The following hosts a sample dynamo application for the printf format conversion.

http://dynamo-exprintf.herokuapp.com/

TODO

  • Improve error checking
  • Improve format support coverage
    • sprintf("%05d", [-10]) results in "00-10", instead of "-00010".