Posted at

bundleしてるgemのディレクトリにcdする

More than 5 years have passed since last update.


~/.zshrc

# bundle cd [gem]

_orig_bundle=$(which bundle)
function bundle() {
if [ "$1" = "cd" ]; then
local gem
if [ "$2" ]; then
gem=$2
else
gem=$($_orig_bundle list | awk '{ print $2 }' | percol)
fi
cd $($_orig_bundle show $gem)
else
$_orig_bundle $*
fi
}


使い方

% bundle cd

Gemfileがあるディレクトリで実行するとpercolが起動して、選択したgemのディレクトリにcdできる。(pecoを使ってる人は適宜置き換える)


デモ


背景

githubのリポジトリを簡単に取ってこれるghqというツールとgem-srcを組み合わせるとbundle install 時に自動的にghqしてくれて便利!というブログが少し前に話題になった。

便利だなー思って使っていたけどいくつか問題点があって


  • bundleしてるバージョンじゃなくてmasterが ghq get される


    • 常に最新版を使っている訳ではない

    • (見たい/パッチを当てたい)のはbundleしているバージョンであってmasterじゃない



  • bundle installしてるのに、それとは別途gitないしhgのリポジトリを取ってくるのは無駄

というわけでgem-srcには退場いただいて、上記のシェル関数を導入するに至った次第。