Problem: Per recent Ruby on Rails security patches, you need to update your Rails applications. However, because you host Rails and its related gems on a private Gem in a Box gem server, it’s a bit cumbersome to manually download the necessary gems from Rubygems.org, and then upload them to your Gem in a Box gem server.
Solution: bash and curl.
1. List the necessary gems in a
rails actionmailer activemodel actionview actionpack activerecord activeresource activesupport railties
2. Create a bash script in a
get_gems.sh file to retrieve the gems from Rubygems.org. Note that I’ve created a
VERSION variable specifying the desired gems’ version.
#!/bin/bash VERSION=4.1.8 for ARG in `cat $1`; do curl -L "http://rubygems.org/downloads/$ARG-$VERSION.gem" > "$ARG-$VERSION.gem" done
3. Create a bash script in a
post_gems.sh file to post the downloaded gems to your Gem in a Box. Note that I’ve created a
VERSION variable specifying the desired gems’ version here too.
#!/bin/bash VERSION=4.1.8 for ARG in `cat $1`; do curl -v -X POST -F file=@$ARG-$VERSION.gem http://YOUR_GEM_IN_A_BOX_USERNAME:YOUR_PASSWORD@YOUR_GEM_IN_A_BOX.com/upload done