Vim で &path に gems のパスを追加する

stargate.vim ではバッファの &path を使用してインクルードするファイルを参照しています。
Rubystargate.vim を使用する際に gems からも参照して欲しかったので &path に gems のパスを追加するようにしてみました。

function! s:ruby()
    if has("ruby")
        ruby VIM::command("setlocal path=" + Gem::Specification.map{|s|s.gem_dir + "/lib"}.sort.uniq.join(","))
    else
        let gems_path = "C:/Ruby/lib/ruby/gems/2.0.0/gems/*/lib/"
        let &l:path=substitute(substitute(glob(gems_path), "\n", ',', "g"), '\\', '/', "g")
    endif
endfunction

augroup vimrc
	autocmd!
	autocmd FileType ruby call s:ruby()
augroup END


if_ruby が使える場合は ruby を使用して、使えない場合は Vim script から取得しています。
gems のパスは各環境で適当に設定して下さい。
stargate.vim 以外にも &path を参照しているプラグイン(neocomplete.vim とか)でも流用できると思います。