(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

rbenvでRuby環境下に置かれたgemを全削除する

そんな夢のようなスクリプトを書いてくれている人がいた。最高。

#!/usr/bin/env bash
 
uninstall() {
  list=`gem list --no-versions`
  for gem in $list; do
    gem uninstall $gem -aIx
  done
  gem list
  gem install bundler
}
 
#rbenv versions --bare
RBENVPATH=`rbenv root`
echo $RBENVPATH
RUBIES=`ls $RBENVPATH/versions`
for ruby in $RUBIES; do
  echo '---------------------------------------'
  echo $ruby
  rbenv local $ruby
  uninstall
done

ざくざく消してくれるのでテンションあがる。Rails初心者の頃(まだ初心者だけど)に雑にbundle installした負債をこれで全部削除出来る。とても良い。
railsをローカルインストールするという考え方はこの辺参照した。

めんどくさいのでコマンド化した。

#!/bin/bash

# 第1引数にプロジェクト名を受け取る

cat << EOS > Gemfile
source "http://rubygems.org"
gem "rails", "4.0.0"
EOS

bundle install --path vendor/bundle

bundle exec rails new $1 --skip-bundle

rm -f Gemfile
rm -f Gemfile.lock
rm -rf .bundle
rm -rf vendor/bundle

cd $1
bundle install --path vendor/bundle
echo '/vendor/bundle' >> .gitignore