Rubyのプロジェクトの雛形 + gemの生成/公開にjewelerを使うようにしてみた

世界的にはマイナーでしたが、個人的には cutagem が大好きでした。

gemを作るとき、プロジェクトを作るときには結局何を使うと嬉しいのだろう

ですが cutagem は明らかに gemcutter.org というか rubygems.org 時代に対応する感じがなさそうです。そこでもう一度試してみました。

で、結果、jeweler にしてみました。

technicalpickles's jeweler at master - GitHub

試したもの

ruby-toolbox.com の上位3つ。

  • jeweler
  • bones
  • newgem

だけ。

簡単な感想

jeweler
予想以上に多機能。テストツールやドキュメンテーションツールなどを雛形作成時に選べるので、rdoc + test/unit なプロジェクトも yard + rspec なプロジェクトも作れる。個人的には徐々に移行しようかと思っているのでこういうのは助かる。ただし、git + github + gemcutter.org に完全に依存していて、新しいプロジェクトを作るといきなり git init & commit までいってしまう。(rubyforge に上げることもできる。)
bones
Rakefile の中身がスカスカなのが気になる。きっと gem library の中にいろいろ記述されているんだろうけど、ちょっとここだけ修正したい、などには対応できなくなってしまう。また、テストは rspec しか考えてないっぽい。
newgem
Rails 寄りすぎて個人的にはあまり活用シーンがなさそう。

github-username をセットしておらず、jeweler でちょっとハマる

1年前の2009年10月には

InfoQ: RubyForgeは徐々に廃止され、RubyGems.orgがGemホスティングを引き継ぐ

ということで rubyforge.org は廃止の方向で話が進み始めています。他のコードホスティングサービス、github や google code の方が優れている機能を rubygems.org にわざわざ移植することはしないそうです。

その中で jeweler は git & github を標準としました。これを表すものとして

  • github の username を要求し、
  • いきなり git commit してしまう

という潔さに自分は感動しました。ただし一つハマったことがあって、それは

github の username が必要

な点。これには

  1. jeweler –github-username USERNAME で指定する
  2. ~/.gitconfig の github.user で指定する

の2つの方法があります。2 は

[github]
        username = USERNAME

という記述のことで、これは

git config --global github.user USERNAME

で指定することと一緒です。

もう2年以上 github を使っていながら github 用の設定を .gitconfig に用意していなかったので新しいプロジェクトを作ることができなくてしばらく悩んでしまいました。(というか、一回 jeweler に挫折しました。ちゃんとエラーメッセージ読んでなかった。)

でももう大丈夫。この間

crontabwrap | RubyGems.org | your community gem host

をリリースしてだいぶ感じをつかんだので、今後はこれでいこうかなと考えています。

[2010-10-09 追記]

https://rubygems.org/ にパッケージを上げると http://rubydoc.info/ に自動的にドキュメントが生成されるみたい。これはすごいなぁ。

More