DefaultArgs

Compile time check for function defaults.

How To Use

Currently only supports modules as arguments.

Make sure you use, require or importDefaultArgs.

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.

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.

  1. Add default_args to your list of dependencies in mix.exs:
```elixir
def deps do
  [{:default_args, "~> 0.1.1"}]
end
```