mruby の拡張モジュールを作る際の準備を楽にするツールを作った

きっかけ

mruby の mrbgems を作りたいと思ったら、mruby のソースコードを取得して、mrbgems の example ををコピーして、モジュール名をリネームして、build_config.rb を編集して、ビルドしなければならないと思います。

一つ一つは容易な作業でも最初にこれらを用意しないといけないのは面倒なので、これらの作業をコマンドでできるようにしてみました。それくらいなら Rake でできるとは思ったのですが、今後拡張していくなら、コマンドラインツールを作った方がいいかなと思い、作りました。

mrbgems のテンプレートを作るなら、既に 人間とウェブの未来 - mrubyの拡張モジュールであるmrbgemのテンプレートを自動で生成するmrbgem作った があるのですが、そのためには mruby を取得して、ビルドして、・・・。

やはり gem install 一発で用意できるのはすごく楽かなと。mruby のビルドには ruby が必要になるので、gem であれば導入が楽になるはず。

インストール

以下のコマンドでインストールできます。

$ gem install mrb

mruby を取得する

最新の mruby をカレントディレクトリに保存する。

$ mrb get

build_config.rb を生成する

カレントディレクトリに build_config.rb を作成する。

$ mrb config

mrbgems のひな形を生成する

foobar のモジュールのひな形を生成する。
mruby/examples/mrbgems/c_extension_example at master · mruby/mruby を参考にしています。

$ mrb gem foobar

今後

まだ最小構成程度の build_config.rb や mrbgems のひな形しか生成できていませんが、build_config.rb に任意の設定を差し込んだし、人間とウェブの未来 - mrubyの拡張モジュールであるmrbgemのテンプレートを自動で生成するmrbgem作った のような高機能のひな形が生成できたらいいなと思います。

あとは、複数の mrbgems を開発していると mruby が増えていくので、それらを管理できたらなと思います。 rbenv みたいな感じで。