A Day in the Life

2010-12-24

cdgem

gem のパスに移動するのがめんどくさいので $GEM_HOME が使える環境下(rvm とか)な ruby の gem のパスに移動する zsh 関数 / 補完関数書いた。

$ cdgem rspec[tab]

とかで

みたいに補完されます。ブクマコメントより、basename でうまく動かない人は 'xargs -i basename {}' すると動くようです

function cdgem() { 
  cd `echo $GEM_HOME/**/gems/$1*|awk -F' ' '{print $1}'`
}

compctl -K _cdgem cdgem
function _cdgem() {
  reply=(`find $GEM_HOME -type d|grep -e '/gems/[^/]\+$'|xargs basename|sort -nr`)
}

rspec 2 と rspec 1.3.1 の共存

両方入れると、rspec 1.3.1 の spec コマンドがエラる(2系が読み込まれるため)ので bin/spec の version を無理矢理書き換える…。

version = "< 2.0.0"

非常に宜しくないない感じですが、他に良い方法あるんですかね…。あと rspec2 は内部的には別物なのに gem 名がrspec2 にならなかったのはなんでかしらかしら、ご存知かしら…。rails3 もまぁそうなんだけどね…。