What are all those gems that are installed/used by Rails

Wonder what all those gems are that you find being installed/used when you do:

rails new app

Here’s a breakdown (all gems can be found doing a search on http://rubygems.org/)

Using rake (10.0.4)

Ruby Make


Using i18n (0.6.4)

Internationalization for Ruby


Installing minitest (4.7.4) 

minitest is a complete suite of testing facilities supporting TDD, BDD, mocking and benchmarking


Using multi_json (1.7.3) 

A gem to provide easy switching between different JSON backends, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, and OkJson.


Using atomic (1.1.9) 

an Atomic class that guarantees atomic updates to its contained value


Using thread_safe (0.1.0) 

A collection of thread-safe versions of common core Ruby classes


Using tzinfo (0.3.37)

TZInfo is a Ruby library that uses the standard tz (Olson) database to provide daylight savings aware transformations between times in different time zones.


Using activesupport (4.0.0.rc1)

A toolkit of support libraries and Ruby core extensions extracted from the Rails framework. Rich support for multibyte strings, internationalization, time zones, and testing.


Using builder (3.1.4) 

Builder provides a number of builder objects that make creating structured data simple to do. Currently the following builder objects are supported: * XML Markup * XML Events


Using erubis (2.7.0) 

Erubis is an implementation of eRuby (Embedded Ruby), a templating system that embeds Ruby in a text document.


Using rack (1.5.2) 

Rack provides an interface for developing web applications.




Using rack-test (0.6.2) 


Using actionpack (4.0.0.rc1) 

Web apps on Rails


Using mime-types (1.23) 


Using polyglot (0.3.3) 

Polyglot provides a registry of file types that can be loaded by calling its improved version of ‘require’. It also allows a Ruby module to register a loader for the file type associated with a filename extension. 


Using treetop (1.4.12) 

A Ruby-based text parsing and interpretation DSL

Using mail (2.5.4) 

Ruby mail handler

Using actionmailer (4.0.0.rc1) 

Email on Rails

Using activemodel (4.0.0.rc1) 

Toolkit for building modelling frameworks like Active Record and Active Resource.

Using activerecord-deprecated_finders (1.0.2) 

Using arel (4.0.0) 

SQL AST (abstract syntax tree) manager for Ruby. It simplifies the generation of complex SQL queries.

Using activerecord (4.0.0.rc1) 

Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes.

Using bundler (1.3.5) 

Manage gems.

Installing coffee-script-source (1.6.2) 

Installing execjs (1.4.0) 

Installing coffee-script (2.2.0) 

Language that compiles into JavaScript.


Using thor (0.18.1) 

A scripting framework that replaces rake, sake, rubigen.

Using railties (4.0.0.rc1) 

see earlier post

Installing coffee-rails (4.0.0) 

CoffeeScript adapter.

Using hike (1.2.2) 

Finding files in a set of paths.

Installing jbuilder (1.0.2) 

Create JSON structures via a Builder-style DSL.

Installing jquery-rails (2.2.1) 

jQuery for Rails.

Installing json (1.8.0) 


Using tilt (1.4.1) 

Generic interface to multiple Ruby template engines

Using sprockets (2.10.0) 

Using sprockets-rails (2.0.0.rc4) 

Rack-based asset packaging system that concatenates and serves JavaScript, CoffeeScript, etc.

Using rails (4.0.0.rc1) 

should be pretty straightforward…!

Installing rdoc (3.12.2) 


Installing sass (3.2.9) 

Installing sass-rails (4.0.0.rc1) 

Extension to CSS3

Installing sdoc (0.3.20) 

rdoc generator

Installing sqlite3 (1.3.7) 

SQLite interface

Installing turbolinks (1.1.1) 

Turbolinks makes following links in your web application faster (use with Rails Asset Pipeline). Similar to pjax (pjax = pushState + ajax). Does not require jQuery but works great with jQuery.

Installing uglifier (2.1.1) 

Ruby wrapper for UglifyJS JavaScript compressor

Your bundle is complete!

And so is this whirlwind tour!

Installing MySQL on a MacBook

For some reason my old MacBook didn’t have MySQL installed.

Here’s the install process:

1. Brew did not work ‘cos it wasn’t installed

brew install mysql
-bash: brew: command not found


2. So, I went to install brew

ruby -e “$(curl -fsSkL raw.github.com/mxcl/homebrew/go)”
curl: (1) Protocol https not supported or disabled in libcurl


3. So, I went to install curl with SSL

sudo port install curl +ssl


—>  Computing dependencies for curl
—>  Verifying checksum(s) for curl-ca-bundle
Error: Checksum (md5) mismatch for certdata-1.57.txt
Error: Checksum (sha1) mismatch for certdata-1.57.txt
Error: Checksum (rmd160) mismatch for certdata-1.57.txt
Error: Target org.macports.checksum returned: Unable to verify file checksums
Error: The following dependencies failed to build: curl-ca-bundle
Error: Status 1 encountered during processing.
Before reporting a bug, first run the command again with the -d flag to get complete output.

4. So I updated port with

sudo port selfupdate


This was successful but recommended this:

The ports tree has been updated. To upgrade your installed ports, you should run
port upgrade outdated

5. So, back to:

sudo port install curl +ssl

This got as far as:
--->  Activating ncurses @5.9_2
Error: org.macports.activate for port ncurses returned: Image error: /opt/local/bin/captoinfo is being used by the active ncursesw port.  Please deactivate this port first, or use 'port -f activate ncurses' to force the activation.
Error: Failed to install ncurses

and failed. But with a suggestion. So:

port -f activate ncurses
Error: Insufficient privileges to write to MacPorts install prefix.

sudo port -f activate ncurses
--->  The following versions of ncurses are currently installed:
--->      ncurses @5.7_0
--->      ncurses @5.9_2
Error: port activate failed: Registry error: Please specify the full version as recorded in the port registry.

A bit of a guess but this seemed to work:
sudo port -f activate ncurses @5.9_2

6. So back to:
sudo port install curl +ssl

After many hours this completed. In the meantime it had installed perl, python, git and sqlite - amongst others!

7. Back to installing brew
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

which was successful.

8. And finally, installing mysql

`brew install mysql`
which had a few warnings:
Warning: Your Xcode (3.2.2) is outdated
Please install Xcode 3.2.6.
Warning: It appears you have MacPorts or Fink installed.
Software installed with other package managers causes known problems for
Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again.

and, perhaps unsurprisingly, was unsuccessful with these messages:
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestGIT.cxx.o
[ 94%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmCTestHG.cxx.o
Linking CXX static library libCTestLib.a
[ 94%] Built target CTestLib
make: *** [all] Error 2
Error: Homebrew doesn't know what compiler versions ship with your version
of Xcode (3.2.2). Please `brew update` and if that doesn't help, file

Running `brew update` just gave:
Already up-to-date.

So, updating Xcode. The App Store version isn't supported on Snow Leopard so you need to sign in to Apple's Developer Tools with your Apple ID and get it from:


and find `Xcode 3.2.6 and iOS SDK 4.3 for Snow Leopard` which is a 4.14GB download. Don't do this over your 3G network!


`brew install mysql`
is successful. Phew! And just shows how cool and labour-saving brew can be - just take a look at the steps involved to install curl with ssl.

One final note:
9. It's worth taking these steps to configure MySQL:


Any lessons to be learned?
Possibly that it takes an awful lot of updates to update the software on an old computer.


Automatic Post Tagger

Not quite as awesome as an automatic post categoriser but still pretty handy: