Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@kjunichi

mrbgemsの雛形を作る超便利ツールmruby-mrbgem-templateを使う

mruby-mrbgem-templateを使うとテストまでの雛形を作ってもらえる

用意するもの

  • 気合とか情熱
  • モチベーション

そこら辺がない場合

  • センス
  • Rubyの同様のモジュールのAPIや実装コード
  • mrubyのGithubのページ(検索したり、過去の経緯がわかる)

その他必要なもの

  • 作業時間(時間は作るものだから。。。)

実作業

mrubyを持ってくる

git clone https://github.com/mruby/mruby.git
cd mruby

mruby-mrbgem-templateのインストール

build_config.rbのenable_debugの直下に以下を記述

conf.gem :github => 'matsumoto-r/mruby-mrbgem-template'

作るモジュールに必要な物も予言できる人はこのタイミングで記述。

# include the default GEMs
conf.gembox 'default'

これも

# include the default GEMs
conf.gembox 'full-core'

とした方が、いろいろ便利な気がする。
(例えば、正規表現とかが使えるようになる)

mrubyをビルド

rake

create.rbの作成

mrubyディレクトリ配下にcreate.rbというファイルを作って作業する。

これ、GithubのREADME.mdの説明をコピーして
エディタで編集するのが良さそう。

params = {
  :mrbgem_name    => 'mruby-sugoiyatsu',
  :license        => 'MIT',
  :github_user    => 'yourname',
  :mrbgem_prefix  => '..',
  :class_name     => 'Sample',
  :author         => 'ANATA NO ONAMAE',
}

c = MrbgemTemplate.new params
c.create

github_userは正直に入れないとGithubをDropbox代わりに使った開発が
面倒になると思われる。

雛形生成

./bin/mruby create.rb

前述のGithubをDropbox代わりに使う開発や、有益なモジュールを
多くの方々に使ってもらう様な向きは、おもむろにWebブラウザを立ち上げるなりして、
Githubにcreate.rbで入力したパラメータに従ったリポジトリを作成し、
その後のMrbgemTemplateのお告げをありがたく実行する。

動かし方

mrubyのbuild_config.rbにモジュールのパスを追加

conf.gem '../mruby-sugoiyatsu'

をbuild_config.rbに追加するか、githubのリポジトリを指定する。

動かす

mrubyのディレクトリで

rake all test

初期状態で、テストも動く。

Travis CIの設定

travis ciのバッチもREADME.mdに貼ってくれている便利仕様なので、
travis ciの管理画面でシンクして該当のリポジトリをONにすると良い。

Link

関連投稿

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?