As you might have guessed, I've finally started playing with Rails 3.1 (alas, I haven't been able to stay too close to the cutting edge lately, due to large client projects on old versions in maintenance mode). One of the things you may have noticed is that Rails 3.1 has more moving parts than it used to. A simple 'gem install rails' brings down 30 gems. 30! What the heck is all this stuff? Well, I dug around a bit, and in case you want to know, here are the answers:
  • actionmailer - High level support for templated emails.
  • actionpack - The view and controller layers in MVC.
  • activemodel - Low-level model utilities for anyone to tap into.
  • activerecord - ORM for databases.
  • activeresource - ORM for REST web services.
  • activesupport - Collection of general utility classes and library extensions.
  • arel - SQL AST manager.
  • bcrypt-ruby - Hashing algorithm for secure passwords.
  • builder - Generator for XML files.
  • bundler - Gem dependency manager.
  • erubis - Fast implementation of eRuby templates.
  • hike - Utility to find files given a set of paths.
  • i18n - Internationalization and localization support.
  • mail - Pure Ruby mail library.
  • mime-types - Figures out the likely MIME content type of arbitrary files.
  • multi_json - General purpose swappable JSON backend library.
  • polyglot - Support for registering arbitrary file types with Ruby loaders.
  • rack - Modular interface to connect web frameworks to web servers.
  • rack-cache - HTTP caching support for rack.
  • rack-mount - Router for rack so it can support multiple applications in one (like Rails engines).
  • rack-ssl - Support for forcing all requests to use SSL.
  • rack-test - Testing API for rack applications.
  • rails - Rails itself. Though really there's not much IN the rails gem.
  • railties - Rails bootstrapping, command line, and generators core - the "glue" that holds everything else together.
  • rdoc - Documentation generator.
  • sprockets - Library for compiling and serving web assets.
  • thor - Tool for building self-documenting command-line utilities.
  • tilt - Generic interface for a variety of template engines.
  • treetop - Parser generator and interpreter.
  • tzinfo - Daylight-savings aware timezone support.

It's worth remembering that as soon as you install Rails, your application has all this stuff available. You wouldn't want to install something to just duplicate the functionality in polyglot, for example, if you need to handle new file types. As usual, time spent exploring Rails is likely to pay off in faster development in the long run.