README.md

# Probe

Tired of the output from 10,000 `IO.inspect` statements cluttering your terminal?

Power you debugging with Probe!

```elixir

defmodule BugFest do
  require Probe#, as: P

  def do_something_badly(with_args) do
    case with_args |> munge() |> Probe.i do
      :one -> true
      :two -> false
    end |> Probe.green(:do_something_badly)
  end

  def munge(args) when is_list(args) do
    :one
  end
  def munge(args) do
    :two
  end
end

BugFest.do_something_badly([:right, :then, :now])
 munge(with_args)  :one
 :do_something_bady  true
:one

```

All of the convenience of `IO.inspect` with none of the confusion.

Plus, **colours**.

![Example output](./output.png)

## Disabling in Production

If you carry the shame of your debugging into production then you can at least
reduce the impact of your incompetence by disabling Probe completely.

Just add

```elixir
config :probe, disabled: true
```

into `config/prod.exs` to not only disable the logging output but also (since
Probe uses macros) completely remove the debugging code from your apps. (You
may need to provoke a re-compilation of your app to see the change appear.)

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be
installed by adding `probe` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [{:probe, "~> 1.0.0"}]
end
```

Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/probe](https://hexdocs.pm/probe).