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
    ```