bundle install
するときに--path vendor/bundle
を付け忘れてRailsアプリケーションのgemがrubyのディレクトリにごっそりインストールされてしまうというのはよくある操作ミス。
そのたびに http://qiita.com/yuki24/items/2e6258b7c6a5b13b7d16 などを参考に削除していたのだけど、デフォルトで削除できないgemがいくつかあってエラーで止まってしまう。それにbundlerやpryのように残しておきたいgemもある。
そこで上の削除方法を少しだけ改良して、削除できない/削除したくないgemを除外できるようにした。
gem uninstall $(gem list --no-versions|ruby -pe 'gsub(/bundler|bigdecimal|io-console|json|minitest|pry|psych|rake|rdoc|test-unit/,"")')
普通はsedを使うところなのだろうけど、せっかくなのでrubyで文字列処理を行った。
追記
-aIx
付けたほうがいい。実はどこかからコピーしたコードだけど引用元が思い出せない。
gem uni -aIx $(gem li --no-versions | grep -v -E "rdoc|psych|io-console|bigdecimal|rake|json|openssl")