gemspecファイルの書き方
できた(というか切り出してきた)gemspec
http://github.com/satoko/prawn/tree/master/prawn.gemspec
forkしているprawnにはprawn.gemspecファイルがありません。
で、自分で適当にでっち上げようとしたのですが、どうやらgemspec(spec.files)の内容が正しくない様子で、動作するgemが作れません。いちいち使用するすべてのファイルを上げなければいけないのだけれど、どうしたら簡単にできるものか...と思ったら、project内のRakefileにgemspecがあった!というので、それを切りだしました。
そこに至るまでのポイントぽいものを挙げます。
###gemspecで重要な属性
Important Attributes
name .. version .. platform .. summary .. require_paths .. files .. dependencies
http://docs.rubygems.org/read/chapter/20
###spec.fileの便利な書き方:Dir.blog
(注意)githubの場合Dir.globはgem生成時にエラーになるようで(エラー通知メールが来てた)、irbでDir.blogして展開したものをgemspecにコピペするのが正解のようです。
shell>>
irb(main):001:0> Dir.glob("{examples,lib,spec,vendor,data}///*")
<<--
結果をspec.filesにコピペ。
rails>>
Gem::Specification.new do |spec|
spec.name = "prawn"
spec.files = ["copy & past the result of Dir.blog"] +
["Rakefile"]
<<--
###gemspecでローカルで正しいgemが作れるかテストする
下記のコマンドで生成されたgemをインストールし、展開後のdirを見たりテストを実行したりして正しくgemが作られているかテストします。
shell>>
$ gem build prawn.gemspec
<<--
###githubでgems.githum.comの一覧に入れてもらう手順
- prawn.gemspecというファイルを用意する
- コミット
shell>>
git push prawn.gemspec -m "add gemspec file"
<<-- - https://github.com/satoko/prawn/editでRubyGemにチェックする
- gem searchで所望のgemが出てくるのを待つ(max 15分くらい?)
shell>>
$ gem search satoko-prawn -r
*** REMOTE GEMS ***
satoko-prawn (0.2.99.2)
<<--
(注意)一覧とはここです。
###Refs
http://d.hatena.ne.jp/akm/20080621#1214036969
http://docs.rubygems.org/read/chapter/20
http://code.google.com/p/rubeus/source/browse/trunk/rubeus.gemspec#