Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Mix in functions from other modules
branch: master

Merge pull request #6 from andreineculau/patch-5

Add new syntax for <mixin all, except>
latest commit a95d63e687
Seth Falcon seth authored
Failed to load latest commit information.
include Adding license boilerplate and cleaning up readme
src Add new syntax for <mixin all, except>
test
.gitignore Initial commit
LICENSE Missing LICENSE file
Makefile Adding dialyzer to standard build
README.markdown
rebar Initial commit
rebar.config warnings_as_failure -> warnings_as_errors

README.markdown

foo.erl:

-module(foo).

-export([doit/0, doit/1, doit/2]).

doit() ->
    doit.

doit(A) ->
    [doit, A].

doit(A, B) ->
    [doit, A, B].

Module bar.erl which 'mixes in' foo:

-module(bar).
-include_lib("mixer/include/mixer.hrl").
-mixin([foo]).

or all except specific functions from foo:

-module(bar).
-include_lib("mixer/include/mixer.hrl").
-mixin([{foo, except, [doit/0, doit/2]}]).

or only specific functions from foo:

-module(bar).
-include_lib("mixer/include/mixer.hrl").
-mixin([{foo, [doit/0, doit/2]}]).

Another version of bar.erl which mixes in all functions from foo and select functions from baz:

-module(bar).
-include_lib("mixer/include/mixer.hrl").
-mixin([foo, {baz, [doit/0, doit/1]}]).

One more version of bar.erl which mixes in foo:doit/0 and renames it to do_it_now/0:

-module(bar).
-include_lib("mixer/include/mixer.hrl").
-mixin([{foo, [{doit/0, do_it_now}]}]).

The original motivation for this parse transform was to permit reuse of functions implementing common logic for tasks such as signature verification and authorization across multiple webmachine resources.

Something went wrong with that request. Please try again.