Roppongi.rb #2 で「MItamae」について話してきた
Roppongi.rb #2が "Infrastructure x Ruby" をテーマに開催され、そこで RubyなしでItamaeレシピを実行できる「itamae-go」を作った - k0kubun's blog 話と pure mrubyで実装されたItamae「itamae-mruby」を作った - k0kubun's blog 話をしてきた。
いいたかったことはスライドの通りだけど、枠が15分でいろいろ漏れた話を書いておく。
MItamaeの現状について
なんでitamae-mrubyからMItamaeに変えたの
というか一昨日までMItamaeはitamae-mrubyという名前だった。エエー。変えた理由は真面目な奴がいくつかあるんだけど、あえて不真面目な奴だけ書くと、名前が微妙なソフトウェアは流行らない気がしていて、itamae-goよりitamae-mrubyの方が筋が良いのにitamae-goの方がウケが良かったので、名前を変えてみることにした。
ちなみに僕はリネームの常習犯で、Hamlitは元々違う名前だったし、activerecord-precountは最初にrubygemsにプッシュしてから3回リネームしているし、他にもいろいろやらかしているので、MItamaeもあと2回くらい変身の可能性を残している。
原案はmrubyで何かとお世話になっているksssさんの発言なんだけど、mitamaeだと「見給え感」が強すぎるのでMItamaeということにしている。
mitamae、一見すると自己顕示欲の塊みたいな名前ですごい
— ホームページビルダー (@r7kamura) 2016年11月1日
プラグイン機構について
resourceプラグインをサポートした。社内でItamaeになってる奴をスッとMItamaeにしようとした時に、portageとかはプラグイン化したいみたいなことを言われたのでサポートした。
で、まあmrubyを使う以上rubygemsは利用できないので考える必要があって、普通にmrbgemを使うとプラグインを組み込む度にMItamaeをコンパイルし直すという話になるのだけど、シングルバイナリで配布してる意味が薄れるので、pluginsディレクトリにmrbgemと同じディレクトリ構造 *1 でRubyのスクリプトを置いておくと動的にロードされるようにした。
なので、リポジトリにgit submoduleでプラグインをいれるか、最悪vendoringするというのが想定された使い方になっている。これに関してはいろんな人の意見を聞いてみたい。
来週の話
今日はItamaeを軸に話をしたけど、来週の金曜にitamae-go, MItamaeを題材にしつつmrubyを使う側を軸にRubyConfで登壇するので、興味がある人はシンシナティで僕と握手。
*1:具体的には ./plugins/*/mrblib/**/*.rb がファイル名順に読まれます