search
LoginSignup
12
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

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

~/.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には退場いただいて、上記のシェル関数を導入するに至った次第。

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
What you can do with signing up
12
Help us understand the problem. What are the problem?