ゆらのとを渡る舟人かぢを絶え行くへも知らぬ恋の道かな
Advent Calendar 2022 98日目1の記事です。
I'm looking forward to 12/25,2022
私のAdvent Calendar 2022 一覧。
はじめに
Elixirを楽しんでいますか
この記事は、ElixirでIoTを楽しめるナウでヤングでcoolなフレームワークであるNervesでEExを使う方法をお知らせします。
Nervesでは標準ではEExは使えません
余計なものは極力省くNervesの思想でしょう。
Nervesでは標準ではEExは使えません。
** (UndefinedFunctionError) function EEx.eval_file/2 is undefined (module EEx is not available)
もちろんちょっとした設定で使えます
もちろんちょっとした設定をすることで使えます。
設定
mix.exs
をちょっと書き換えるだけです。
def application do
[
mod: {HelloNerves.Application, []},
extra_applications: [:logger, :runtime_tools, :eex] # :eexを追加
]
end
使い方
たとえば、priv/hoge/template.md
と配置しましょう。
<%= item_count %>
ソースコードは以下のように作ります。
:code.priv_dir
を使うことで、ホスト(ローカルマシン)での開発、Nerves上での実行ともにいい感じにパスを解決してくれます。
template_path = "#{:code.priv_dir(:hello_nerves)}/hoge/template.md" # :hello_nerves はNervesアプリ名に置き換えてください
bindings = [item_count: 100]
EEx.eval_file(template_path, bindings)
動機
私はNervesアプリで、Qiitaの記事を自動で更新しています。
テンプレートにEExを使いたいわけです。
Wrapping up
この記事は、NervesでEExを使う方法をお知らせしました。
Nervesにデフォルトで入っているnerves_motdの1st コミッターである @mnishiguchi さんのスペシャルサンクスでこの記事を書けました。
ありがとうございます!
この場をお借りして感謝を申し上げます。
$\huge{Thank\ you\ very\ much.}$
Enjoy Elixir
$\huge{Enjoy\ Elixir🚀}$
以上です。
I organize autoracex.
And I take part in NervesJP, fukuoka.ex, EDI, tokyo.ex, Pelemay.
I hope someday you'll join us.
We Are The Alchemists, my friends!
We appreciate this shoutout, Torifuku! pic.twitter.com/dThmJg4CYN
— ClickUp (@clickup) April 11, 2022