ソース見たいときのシェル関数
どうやら、いつもRailsのドキュメントを読まずにソースコードを眺めつつコードを書いているようで、Railsのソースコードへの移動が面倒になっている。少し移動が便利になるようシェル関数を書いたので、張り付けておこう。
rj() { gemdir=${GEM_HOME:-`ruby -rrubygems -e 'puts Gem.default_dir'`} subdir='' case ${1} in p) gem='actionpack' subdir='action_pack' ;; v) gem='actionpack' subdir='action_view' ;; c) gem='actionpack' subdir='action_controller' ;; r) gem='activerecord' ;; s) gem='activesupport' ;; *) gem='rails' ;; esac basedir=`find "${gemdir}/gems" -maxdepth 1 -name "${gem}*" -type d | sort | tail -1` if [ "${subdir}" = "" ] then path="${basedir}/lib" else path="${basedir}/lib/${subdir}" fi pushd ${path} }
こんな感じで使います。
komamitsu@ginger:~$ rj /var/lib/gems/1.8/gems/rails-2.3.8/lib ~ komamitsu@ginger:/var/lib/gems/1.8/gems/rails-2.3.8/lib$ popd ~ komamitsu@ginger:~$ rj v /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view ~ komamitsu@ginger:/var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view$ popd ~ komamitsu@ginger:~$ rj r /var/lib/gems/1.8/gems/activerecord-2.3.8/lib ~ komamitsu@ginger:/var/lib/gems/1.8/gems/activerecord-2.3.8/lib$ popd ~ komamitsu@ginger:~$ rj s /var/lib/gems/1.8/gems/activesupport-2.3.8/lib ~ komamitsu@ginger:/var/lib/gems/1.8/gems/activesupport-2.3.8/lib$ popd ~ komamitsu@ginger:~$ rj c /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller ~ komamitsu@ginger:/var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller$