RubyGems の gem コマンドでパッケージを検索するには
gem search STRING [options]
とするわけなんだけど、これってパッケージ名にしか引っかからないんだなぁ。だとするとあんまり使えない。query とか list とかあるけど結局 name しか見てないから、「こんな機能を持ってるパッケージがあるかどうか」は raa や rubyforge の Web 上のインターフェイスから確認しないとよく分からんてことになっちゃう。(Fink で入れた 0.8.11 と ports で入れた 0.9.0 で確認。)
あ。
gem list --remote | grep -i KEYWORD
にすればいいのか。と思ったら description の行しか引っかからなくて訳分かんねー。
gem list --remote | grep -3 -i KEYWORD
とかになるのか。面倒くさいなぁ1。おまけに遅いし。apt みたいにローカルにキャッシュ作ってそこから検索してくれないかな。それともそういう gem パッケージがあったりするのかな。gem list でドバーっと取れるリストを DB に突っ込んでそこから検索してくれるようなやつ。
gem list --remote | grep -3 -i KEYWORD | grep '^[^[:space:]\-]'
にするとなんとなくほしい情報に近い感じになるけど、こうなると列挙されるバージョン番号が邪魔だし、本来探しているのと異なるパッケージが出てる可能性もある。現状の list の出力からだと加工も面倒だと、そういうことだなきっと。
あー gem specification の YAML 出力と組み合わせれば目的のものができそう。できそうなのは分かった。……。うん、できそうなのは分かったよ。んー。でも spec を remote から取得する方法はないのか。結局そこに行き着くんだな。gem_server ミラーリング? うえー。
ports の make search key=KEYWORD | grep ^Path もかなり面倒だが、これはまだほしい情報が確実に取れるからかなりマシ。 ↩