README.md
# DefaultArgs
Compile time check for function defaults.
# How To Use
Currently only supports modules as arguments.
Make sure you `use`, `require` or `import` `DefaultArgs`.
Wrap the default module argument you want to check with the `default` macro.
If the module cannot be loaded, then an `ArgumentError` is raised at compile time.
```elixir
defmodule Foo do
use DefaultArgs
def bar(http_client \\ default(MyHttpClient)) do
# work
end
def baz(http_client \\ default(MisspeltModule)) do
# raises ArgumentError at compile time.
end
end
```
## Installation
Available in Hex: [available in Hex](https://hex.pm/packages/default_args).
1. Add `default_args` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[{:default_args, "~> 0.1.1"}]
end
```