Magic

Build StatusCoverage Status

Magic is a set of common libraries for personal daily coding. It's contained randmom, system cmd, http request, IoC(beta).

System cmd

Run

iex> import Magic
iex> ~q(echo 123)
{:ok, ["123"]}

Async Run

iex(1)> import Magic
Magic
iex(2)> ~b(echo 123)
#Port<0.5385>
iex(3)> flush()
{#Port<0.5385>, {:data, "123\n"}}
{#Port<0.5385>, {:exit_status, 0}}
:ok

Random String

iex> Random.random()
"9nNc2OaQJowEEucW"

iex> Random.random(32)
"SpMkGZ5fvapMlvA8ALG8n3YQShPm91wB"

Find who implemented Mix.SCM

iex> Shotgun.find(Mix.SCM)
[Hex.SCM, Mix.SCM.Path, Mix.SCM.Git]

iex> Shotgun.find(ABC)
[]

Http Request

iex> {:ok, rsp} = Http.get("https://registry-1.docker.io/v2/")
iex> rsp.data
%{"errors" => [%{"code" => "UNAUTHORIZED", "detail" => nil, "message" => "authentication required"}]}

Installation

If available in Hex, the package can be installed by adding magic to your list of dependencies in mix.exs:

def deps do
  [{:magic, "~> 0.2.0"}]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/magic.