Hoe: もう一つの簡単なRubyGemsパッケージの作り方
RubyGems パッケージの作り方 - rubyforge 登録まで
僕はまだRubyForgeにGemを登録した事がないので、secondlifeさんの記事はとても参考になりました。蛇足感もありますが、多様性は善という事で、HoeというGemを使ったもう一つのRubyGemsパッケージの作り方を紹介します。
Hoeは、Seattle.rb Projects
による一連のプロジェクトの中の一つで、やはりnewgemと同じようにRubyGemsの作成を簡単にしてくれるGemです。
Hoeを使ってGemを作る流れは、
- sowコマンドでGemの雛形を生成
- 雛形を元にGemを作成
という感じで、非常に簡単です。具体的に簡単なGemを作る方法を紹介します。
まずはHoeをインストールしましょう。
# gem install hoe --include-dependencies
そしてGemの雛形を生成します。
shell-unix-generic>>
$ sow sample
creating project sample
... done, now go fix all occurances of 'FIX'
sample/Rakefile:9: # p.summary = 'FIX'
sample/README.txt:2: by FIX
sample/README.txt:3: FIX
sample/README.txt:7:FIX
sample/README.txt:11:* FIX
sample/README.txt:15: FIX
sample/README.txt:19:+ FIX
sample/README.txt:23:+ FIX
sample/README.txt:29:Copyright (c) 2006 FIX
<<--
とりあえずこのFIXというところをカスタマイズすればOKという親切ぶりです。
そしてさらに、次のようなRakeタスクが生成されます。
shell-unix-generic>>
$ rake -T
(in /home/takiuchi/sample)
rake announce # Generate email announcement file and post to rubyforge.
rake audit # Run ZenTest against the package
rake check_manifest # Verify the manifest
rake clean # Clean up all the extras
rake clobber_docs # Remove rdoc products
rake clobber_package # Remove package products
rake debug_gem # Show information about the gem.
rake default # Run the default tasks
rake docs # Build the docs HTML Files
rake email # Generate email announcement file.
rake install # Install the package. Uses PREFIX and RUBYLIB
rake install_gem # Install the package as a gem
rake multi # Run the test suite using multiruby
rake package # Build all the packages
rake post_news # Post announcement to rubyforge.
rake publish_docs # Publish RDoc to RubyForge
rake redocs # Force a rebuild of the RDOC files
rake release # Package and upload the release to rubyforge.
rake repackage # Force a rebuild of the package files
rake ridocs # Generate ri locally for testing
rake test # Run the test suite. Use FILTER to add to the command line.
rake uninstall # Uninstall the package.
<<--
なんとも魅力的な名前のタスク達ではないでしょうか。
rakeコマンドを打つだけでRubyForge上でのいろんな作業が出来てしまいそうです。
そのほか細かいところは同じなので、secondlifeさんの記事をご参照ください。