gem の検索って不便だな

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 ミラーリング? うえー。

  1. ports の make search key=KEYWORD | grep ^Path もかなり面倒だが、これはまだほしい情報が確実に取れるからかなりマシ。 

More