LoginSignup
10
0

More than 1 year has passed since last update.

ゆらのとを渡る舟人かぢを絶え行くへも知らぬ恋の道かな

Advent Calendar 2022 98日目1の記事です。
I'm looking forward to 12/25,2022 :santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5:
私のAdvent Calendar 2022 一覧


はじめに

Elixirを楽しんでいますか:bangbang::bangbang::bangbang:

この記事は、ElixirでIoTを楽しめるナウでヤングでcoolなフレームワークであるNervesEExを使う方法をお知らせします。

Nervesでは標準ではEExは使えません

余計なものは極力省くNervesの思想でしょう。
Nervesでは標準ではEExは使えません。

** (UndefinedFunctionError) function EEx.eval_file/2 is undefined (module EEx is not available)

もちろんちょっとした設定で使えます

もちろんちょっとした設定をすることで使えます。

設定

mix.exsをちょっと書き換えるだけです。

mix.exs
  def application do
    [
      mod: {HelloNerves.Application, []},
      extra_applications: [:logger, :runtime_tools, :eex] # :eexを追加
    ]
  end

使い方

たとえば、priv/hoge/template.mdと配置しましょう。

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 :lgtm::lgtm::lgtm::lgtm::lgtm:

この記事は、NervesEExを使う方法をお知らせしました。

Nervesにデフォルトで入っているnerves_motdの1st コミッターである @mnishiguchi さんのスペシャルサンクスでこの記事を書けました。
ありがとうございます!
この場をお借りして感謝を申し上げます。
$\huge{Thank\ you\ very\ much.}$

Enjoy Elixir:bangbang::bangbang::bangbang:
$\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!


  1. @kaizen_nagoya さんの「「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 1日目 Most Breakthrough Generator」から着想を得て、模倣いたしました。

10
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
0