bat/tests/syntax-tests/highlighted/Elixir/command.ex
2020-10-03 22:33:44 +02:00

31 lines
6.2 KiB
Elixir
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

defmodule Charlex.Command do
 @callback usage() :: [String.t()]
 @callback description() :: String.t()
 @callback parse_args(args :: String.t()) :: any()
 @callback run(context :: Map.t(), args :: [String.t()] | any()) :: String.t() | any()
 @optional_callbacks usage: 0, description: 0, parse_args: 1
 defmacro __using__(_opts) do
 quote do
 @behaviour unquote(__MODULE__)
 @impl true
 def usage, do: "This command is without usage, will add it soon"
 @impl true
 def description, do: "This command is without description, will add it soon"
 @impl true
 def run(_context, _args), do: :ok
 @impl true
 def parse_args(args), do: args |> String.split() |> Kernel.tl()
 defoverridable parse_args: 1, description: 0, run: 2, usage: 0
 end
 end
end