Screamer
Microlibrary, which adds special function definition macro def!, working like this:
- The body of the function should be defined to raise errors in case of exceptional situations.
def MyModule
use Screamer
def! foo() do
raise "error"
end
endThe macro would automaticaly create two functions: with and without screamer:
iex> MyModule.__info__ :functions [foo: 0, foo!: 0]The logics of this functions is based on the Elixir contracts: screamed one raises error or return value, clear one return
{:ok, value}or{:error, error}:iex> MyModule.foo {:error, %RuntimeError{message: "error"}} iex> MyModule.foo! ** (RuntimeError) error
Installation
The package is available in Hex.
To install, add screamer to your list of dependencies in mix.exs:
def deps do
[{:screamer, "~> 0.1.2"}]
endChangelog
0.1.2
- [BUG] Fixed bug with functions having predefault values
def! foo(a \\ 0) # didn't work, now works
0.1.1
- Adding tests
- Adding docs
0.1.0
Starting version