Wondershake 開発者ブログ

LOCARI(ロカリ)の運営会社の開発者ブログです。

Elixir / IEx の便利なコマンド

この記事は Wondershake Advent Calendar 2016 21日目の記事です。

僕もまだまだ Elixir のことを勉強中ですが、今回は僕が気に入ってる便利なコマンドお伝えしたいと思います!

IExで hを使う

基本的なコマンドかもしれませんがすごく便利だです。普通に iexh のコマンド使うとElixirのstandard libraryのドキュメンテーションしか見れませんが、 iex -S mix から h のコマンド使えばプロジェクトをロードしているモジュールのドキュメンテーションを全部見れます。僕はphoenixのプロジェクトでよく h Ecto.Queryを見ます。

h(Module)

f:id:dykstra:20161221141932p:plain

h(Module.function)

f:id:dykstra:20161221141945p:plain

h(Module.function/arity)

f:id:dykstra:20161221142038p:plain

IExで iを使う

もともとはRubyを書いているので、最初はRuby .inspect.class を使えないので不便だと思っていましたがElixirのイントロスペクションはかなり良いです。

f:id:dykstra:20161221142057p:plain

f:id:dykstra:20161221142112p:plain

escriptでコマンドラインアプリケーションを簡単に作れる

1) 新しいプロジェクトを作る mix new cli_example

2) mix.exs で...

def project do
  [app: :cli_example,
   version: "0.1.0",
   elixir: "~> 1.3",
   build_embedded: Mix.env == :prod,
   start_permanent: Mix.env == :prod,
   escript: [main_module: CliExample], # <- これを入れるだけ
   deps: deps()]
end

3) lib/cli_example.exsCliExample のモジュールで main functionを作る

defmodule CliExample do
  def main(args) do
    args |> IO.inspect
  end
end

4) mix escript.buildコンパイルする

5) ./cli_example [args] で使える!

f:id:dykstra:20161221142122p:plain

まとめ

この記事でElixirの使いやすさ少しでもお伝えできていたら嬉しいです。

明日はまた @masa-myo です!楽しみです!