defmodule Mix.Tasks.Compile.Promox do use Mix.Task.Compiler require Promox @spec run(OptionParser.argv()) :: :ok def run(args) do :code.get_path() |> Protocol.extract_protocols() |> Enum.map(fn p -> Promox.defmock(for: p) impls = [Promox | Protocol.extract_impls(p, :code.get_path())] Protocol.consolidate(p, impls) end) :ok end end