bundleで管理しているプロジェクトかそうじゃないかを考えながら、「ruby test.rb」したり「bundle exec ruby test.rb」したりするのが辛くなってきたので、適当に判断してくれるようなシェルスクリプトを書いたらものすごく捗るようになりました。
「bundle check」の結果で判定するだけの簡単なスクリプトですが、いい感じに役に立ってくれています。ついでに、引数がない時はirbを起動するようにもしてみました。
かならずbundle checkする分ちょっと動作が遅くなりますが、まぁ許容範囲内です。
rb
#!/bin/bash
bundle check 2>&1 > /dev/null
case $? in
0)
if [[ $# == 0 ]]; then
bundle console
else
bundle exec ruby "$*"
fi
;;
10)
if [[ $# == 0 ]]; then
irb
else
ruby "$*"
fi
;;
*)
bundle check
;;
esac
ちなみに、vimのquickrunで実行する対象にしたらもっと捗りました。(私はこのスクリプトを「rb」で実行できるようにしてます。)
.vimrc
let g:quickrun_config = {
\ 'ruby': { 'command': 'rb' }
\ }
前までは、vimのquickrunでrubyをbundle exec rubyする方法 に従って設定していたのですが、これだと、いちいち「:setl ft=ruby.bundle」するのが面倒だったんですよね。