前々からいつかやりたいと思っていた、gem作りに挑戦してみました。
試行錯誤のうえ、できたのがこちら。
Railsならbundleするだけで以下のようなページが生成されます。
Special Thanks
先日公開したKonnyakuにも組み込む予定。
なぜ作ったか
お世話になってるオープンソースプロダクトへのせめてのもの感謝として、積極的にAttributionするように心がけています。
いつもは、Footerに並べることが多いんですが、それだとどうしてもスペースや保守の限界があって、主要なものだけになってしまいます。
そこで目を付けたのがGemfile。Rubyならまさにこれがお世話になったリストだから、この情報を使ってスペシャルサンクスページを自動生成しちゃえばいいじゃん、と考えました。
はじめてのGem
- 今gemを作るなら bundle gem より ore gem – Hatena::Blog::toshiwo
- Rubyでサブコマンド付きのコマンドを簡単に書けるThor #Ruby #rubygems – Qiita
の2つが参考になりました。
あとはOreやThorのコードやSpecも勉強になりました。
また、Gemfileのパースについては、Bundler内のDSLというクラスを使わせてもらいました。
はじめてのEngine (Plugin)
あたりが勉強になりました。
また、同じ種類(bundleしたら画面が増える系)のgemということで、
schneems/sextant · GitHub
のコードを参考にさせてもらいました。
まとめ
今まで敷居が高いと思い込んでいましたが、単純なコマンドやプラグインなら思ったより簡単に出来るということがわかりました。これから、Gem化できそうなものがあれば積極的に作っていこうと思います。
とりあえず、arigato_podsは作りたい。
あとちゃんと出したものを保守する。テストも書く。
それでは、良い週末を。
最近のコメント