LoginSignup
6
5

More than 5 years have passed since last update.

jr を使って GitHub API から自分がよく使う言語ランキングを作る

Last updated at Posted at 2014-10-03

jr は jq 風の JSON フィルタリングを Ruby で行えるコマンドラインツールです。
今回はこの jr を使って、GitHub の自分のリポジトリ一覧を取得して、自分が良く使う言語をランキング化してみます。
なお、言語については GitHub の自動検出によるものなので、必ずしも実情を反映しているというものではありません。

jr のインストール

gem コマンドでインストールできます。
多分 Ruby 2.0 以降なら動きます。

$ gem i jr-cli --no-ri --no-rdoc

gem 名は jr でなく jr-cli である点に注意してください。

ランキングの作成

以下のコマンドを実行するのみです。
ユーザ名は自分のものに置き換えてください。
GitHub API は 1 ページあたり 100 件まで取得することができます。
私はリポジトリ数が 160 個ほどなので 2 ページ必要ですが、ここも必要に応じて書き換える必要があります。

$ jr 'flat_map(&:itself).group_by{|j| j[:language] }.map{|k, v| [k, v.size] }.sort_by{|k, s| -s }.to_h' <(curl -s 'https://api.github.com/users/yuya-takeyama/repos?per_page=100&page=1') <(curl -s 'https://api.github.com/users/yuya-takeyama/repos?per_page=100&page=2')
{
  "PHP": 59,
  "Ruby": 47,
  "": 19,
  "JavaScript": 16,
  "Go": 5,
  "CSS": 5,
  "Shell": 4,
  "CoffeeScript": 2,
  "Haskell": 2,
  "Perl": 2,
  "C": 2,
  "XSLT": 1,
  "VimL": 1,
  "Python": 1
}

試行錯誤するときは、Rate Limit に注意しましょう。
予めファイルに保存して、それを読み込むようにすると安心ですね。

自分でドッグフーディングしてみて、ユースケースを探りながら機能追加していきたい。

2014-10-06 01:00 追記

jr Ver. 0.0.2 で Kernel#itself を追加したのと、その他の修正により、コマンドが少し短くなりました。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5