トップ «前の日記(2009-05-18) 最新 次の日記(2009-05-26)» 編集

Route 477



2009-05-22

[ruby][git] gemspecの作り方がわからない?ならばjewelerだ

githubなりrubyforgeなりでgemを公開するときに必要となるのがgemspecファイルですけれども、 これは手書きするのははっきりいってめんどい。それをなんとかしてくれるgithubおすすめの ツールができたらしい。

その名もjeweler。

使い方は上のページに書いてあるけど、Rakefileに

begin
  require 'jeweler'
  Jeweler::Tasks.new do |gemspec|
    gemspec.name = "the-perfect-gem"
    gemspec.summary = "TODO"
    gemspec.email = "josh@technicalpickles.com"
    gemspec.homepage = "http://github.com/technicalpickles/the-perfect-gem"
    gemspec.description = "TODO"
    gemspec.authors = ["Josh Nichols"]
  end
rescue LoadError
  puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
end

みたいに追記するだけ。そうしたら、

$ rake version:write
$ rake version_required

でVERSIONファイルを初期化する。(あ、人によってはこのへんの作業が必要になるかも)

あとは、

$ rake gemspec

でgemspecファイルができて、

$ rake build

でpkg/以下にgemがビルドされる。さらには

$ rake release

というコマンドがあって、これはgemspecを作り、タグを切って、githubにpushまでしてくれる。楽ちんですね。

バージョン番号を上げるときは

$ rake version:bump:major
$ rake version:bump:minor
$ rake version:bump:patch

のいずれかを使う。

gemspecの内容のいじり方はWiki参照

(追記:githubで公開するときは、リポジトリの設定で「RubyGem」を有効にするのを忘れずに^^; gemstalkerを入れておくと、 $ gemstalk yhara lifelog とかでgithubでgemが公開されたときに教えてくれるようだ。)