ムスタァッシュって響きだけで記事を書き始めてしまったわけですが
突然ですが英単語クイズです。この単語の意味はなんでしょう?
Mustache
そうですね……。ムスタァッシュ……ですね。まあ、ひげとかそういう意味です。と言いたいところですが、なぜか英語ではひげをあらわす単語が複数あったりします。なんででしょうね。
ちなみに、ひげをあらわす単語はこんな感じです。深くは知りたい場合はググりましょう。
単語 | 意味 |
---|---|
口ひげ | mustache |
頬ひげ | beard / whiskers |
もみあげ | sideburn |
ちょびひげ | small mustache |
縁どりひげ | trimmed beard |
コールマンひげ | Coleman mustache |
やぎひげ | goatee |
そんな感じで分類されます。色々ありますが「mustache」で言われたら概ね鼻と口の間に生えているひげのことという認識でいいと思います。
ついでだから Mustache やろうか
まあ、そんな話は置いておいて今日はこのテンプレートエンジンを触っていこうと思います。
{{ mustache }}
なぜやりだしたかと言えば、ムスタァッシュって響きだけで記事を書き始めてしまったからで理由は特にありません。
これ単体だけですと、使い道は微妙なんですがなんか色々なフレームワークに組み込まれていたり、いなかったりするので覚えておくといつか役に立つ日もあるかもしれません。まあ、よくわかんないですけどね。あと、使える言語が無駄に多いので触れる機会があるかもしれない。まあ、よくわかんないですけどね。
あ、情報が古いですがドットインストールに講座があるので興味があれば。
mustache入門
ドットインストール曰く、簡単な操作方法はこんな感じです。Gemを使ったインストールはgem install mustache
で落とせるっぽいですよ。他の言語での使い方は公式参照でお願いします。
データの用意(data.yml)
title: sample score: 100 showScore: true html: <p> users: - name: sample01 email: sample_mail01 - name: sample02 email: sample_mail02
テンプレート部分の用意(temp.mustache)
{{! コメント }} - {{title}} - {{score}} - {{html}} {{! HTMLタグの埋込 }} - {{{html}}} - {{&html}} {{! 区切り記号の変更 }} {{=<% %>=}} - <% html %> <%={{ }}=%> {{! 真偽値の判定 }} {{#showScore}} - {{score}} {{/showScore}} {{^showScore}} - score is false {{/showScore}} {{! 複雑なデータの操作 }} {{! partial利用 }} {{#users}} {{> user}} {{! user.mustacheに記述 - {{name}} ({{email}}) }} {{/users}}
実行コマンドは以下のようにするといいらしい。
$mustache YAML.yml TEMPLATE.mustach
ちなみに今回利用したmustacheのバージョンは1.0.5でした。
触ってみた
このままmustacheファイルいじっても、いまいち「何に利用できるの?」感しかないのでドットインストールで落としてきてしまったMustacheで自分が思う使えそうな感じに書き換えたやつを試してみます。
なんかつくってみる。
require 'mustache' class Test < Mustache def name "Andou" end def score rand(0..100) end end puts Test.render "お名前:{{name}}" puts Test.render "点数:{{score}}"
実行するとこんな感じ。点数はランダムで表示されます。
$ ruby ***.rb
お名前:Andou
点数:46
まあ、こうやっても「何に使えるの?」感しかないっていうね……。でも、mustacheファイルつかってテキストファイルいじるよりかは汎用性は多少あるんではないでしょうか。テンプレート系の話は実装規模が大きくないと恩恵を得られないからね。仕方ないね。