An open API service indexing awesome lists of open source software.

https://github.com/strobe-audio/probe


https://github.com/strobe-audio/probe

Last synced: 4 months ago
JSON representation

Awesome Lists containing this project

README

          

# 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).