An opinionated way of dealing with behaviours
Included PRs:
For details please see https://hexdocs.pm/knigge/the-existence-check.html
Only the first defdefault for a callback was used during generation; now all defdefaults are being used to generated function clauses.
The typo made the usage of the otp_app
option impossible and as it turned out the covering test didn't run. Oops ...
Knigge now only checks if the given modules exist based on the value of the check_if_exists
option, which accepts a number of values:
only: <envs>
or except: <envs>
(single value keyword list)For more information see the docs.
As it turns out Mix.env
always returns :prod
for dependencies. Knigge now determines the callers env
and puts it into the Options
struct to use it instead of a static @env
module attribute.
Also add a section on compiler warnings which happen in :test
due to the compiler not finding the module.
This release extends the delegate_at
option to allow passing a list of environments similar to check_if_exists
.
To be more clear on the intent delegate_at
has been renamed to delegate_at_runtime?
and check_if_exists
to check_if_exists?
. The old names are still accepted by Knigge
but a deprecation warning is printed if they are being used.
With this done the default of delegate_at_runtime?
has been set to [only: :test]
which allowed to change the default of check_if_exists?
to true
.
Now Knigge
will no longer generate compiler warnings in test when using Mox.defmock
since the implementation will - as the this change suggests - be loaded at runtime instead of compile time.
Merge pull request #9 from alexcastano/master