rubygemsのメタ情報

gemのコードリポジトリなどメタ情報探すのに試行錯誤してるので、メモ。

欲求

  • readmeが見たい
  • diffが見たい
  • リポジトリ簡単に見つけたい

今のところの解決策

類似

普通 readmeやdiffあるよね!! rubygems.orgやruby-toolbox.comにreadmeとdiffないね!

原因

gemspecにはhomepage_urlしかない。多分歴史的経緯、github無かったよね多分。あとreadmeやchangelogの作法も決まってない(rdoc??!)。

先行

rubygems.org/api/v1/gemsで検索するとみんなで再発明している。
gem-browse
gem-src
compare_linker

課題

gem search, gem list –remote

gem searchで取れる情報の中は名前とplatformと各バージョン情報しか無い。

require 'rubygems/spec_fetcher'
fetcher = Gem::SpecFetcher.fetcher
tuples = fetcher.detect(:released) { true }

こんなで取れるやつ。via: ruby – How to get all Gems names via web? – Stack Overflow

gem info

gem infoでインストール済みのものについてはgemspecが取れる。インストール済みのもの!!

rubygems.org, api.rubygems.org

rubygems.orgのページ上, api.rubygems.orgのレスポンスにしか無い情報がある。eg, source_code_uri

しかもこれを編集するのはrubygems.orgのweb上からしか出来ない!??!?!
eg, https://rubygems.org/gems/rubygems-code_finder/edit

結局、入ってたり入ってなかったりする。そりゃそうだ。

github search api

gemspecにもapi.rubygems.orgにも無かった場合、検索で解決するしか無い? 誤爆の可能性もあるけど、githubのsearch/repositoriesで探すのは、考える策の中では割とマシに思える。
たとえばfluentdがこれで行ける。

構造上の問題

gemのリポジトリとは

たとえば、activerecordのリポジトリってどこ?? 正解: https://github.com/rails/rails
spree_coreのリポジトリは?? 正解: https://github.com/spree/spree

githubのcompare viewに頼るとこの理由でactiverecordのdiffとは!となる

なんでもかんでもgithubでhostされてると思うなよ!?

デスヨネー

網羅しようとすると、自前でホストするしか無いデスネー

結論

メタ情報は自前でどうこうするより、rubygems.org編集してsource_code_uriを入れロッテissue立てまくるbot書くほうがより生産的。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中