Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.41 KB | None | 0 0
  1. defmodule MakeBehaviour do
  2. defmacro __using__(opts) do
  3. module = opts[:module]
  4. quote do
  5. if not is_nil(unquote(module)) do
  6. import unquote(module)
  7. end
  8. @on_definition {MakeBehaviour, :on_def}
  9. end
  10. end
  11.  
  12. def on_def(%{module: module}, :def, name, args, _guards, _body) do
  13. Module.spec_to_callback(module, {name, length(args)})
  14. end
  15.  
  16. def on_def(_, _, _, _, _, _), do: nil
  17. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement