Ruby

Introduction
The following page is dedicated to information about the Ruby programming language and all things related to it. This page was assembled with help from Brant.
Getting Started
- Intro to Ruby - A series of posts that teaches you what Ruby is, how to configure it for your development environment, and how to use the language (code samples are included and available for download as well).
- Ruby on Rails Tutorial - A free, easy to use, and online book tutorial.
Tips and Tricks
- Ruby 1.9 - What to Expect.
- Ruby 1.9 - Future proof your code.
- Ruby 1.9 - 23 Useful Links and Resources.
- Ruby 1.9 - Getting Code Ready for Ruby 1.9.
- Ruby 1.9 - 10 things to be aware of.
- Ruby 1.9 - Learn how to deploy your Rails apps.
- Ruby 1.9 - Strings.
- Ruby 1.9 - M17N.
- Ruby 1.9 - Ordered Hash.
- Ruby 1.9 - Encodings: A Primer and the Solution for Rails
- Ruby 1.9 - Features, Tips, and Tricks
- Ruby 1.9 - Tuning the Garbage Collector with Ruby
- Rails 3.2 - Release Notes
- Rails 3.2 - Pre-Install Notes
- Rails 3.2 - Upgrading to Rails 3.2.0 from Rails 3.1.3
- Rails 3.2 - My five favorite “hidden” features in Rails 3.2.
- Rails 3.2 - Modularized Association Methods
- Rails 3.2 - Rails on Heroku
- Rails 3.1 - Read This Before Installing
- Rails 3.1 - Configuring Rails 3 to use HTTPS and SSL.
- Rails 3.1 - Changelog
- Rails 3.1 - Gem Composition
- Rails 3.1 - Helpful Resources For Upgrading to Rails 3.1.
- Rails 3.1 - JavaScript templating with Sprockets.
- Rails 3.1 - Sprockets and Heroku.
- Rails 3.1 - Using Jasmine to test CoffeeScript in a Rails 3.1 App.
- Rails 3.1 - Sass, Compass, and the Rails 3.1 Asset Pipeline.
- Rails 3.1 - Use Compass Sass Framework Files With The Rails 3.1 Asset Pipeline.
- Rails 3.1 - Using the Asset Pipeline outside of Rails – Serving CoffeeScript and SASS.
- Rails 3.1 - Deployment gotchas.
- Rails 3.1 - Deploying to Production
- Rails 3.0 - Reading material.
- Rails 3.0 - Introduction.
- Rails 3.0 - Approaching the upgrade.
- Rails 3.0 - Getting up to speed.
- Rails 3.0 - Upgrading to Rails 3.
- Rails 3.0 - Automating a portion of the Rails 3 upgrade process with the rails-upgrade gem.
- Rails 3.0 - Avoiding Rails 3 Dependency Hell With RVM.
- Rails 3.0 - Info - A treasure trove of news, information, and resources related to the new release.
- Rails 3.0 - Router.
- Rails 3.0 - The Powerful New Router.
- Rails 3.0 - The Lowdown on Routes in Rails 3.
- Rails 3.0 - Revamped Routes.
- Rails 3.0 - Routing with Rack.
- Rails 3.0 - Render Options.
- Rails 3.0 - Named Scopes Are Dead.
- Rails 3.0 - The Skinny on Scopes (Formerly named_scope).
- Rails 3.0 - Unobtrusive Javascript - A Definitive Guide.
- Rails 3.0 - Unobtrusive JavaScript
- Rails 3.0 - Active Record Query Interface.
- Rails 3.0 - Understanding the ActionMailer API.
- Rails 3.0 - Receiving incoming emails.
- Rails 3.0 - Generic Actions.
- Rails 3.0 - The Rails Module.
- Rails 3.0 - Discovering Rails 3 generators.
- Rails 3.0 - HTML5 client-side validations.
- Rails 3.0 - Tweaking ActiveSupport::Concern.
- Rails 3.0 - Custom Subdomains.
- Rails 3.0 - Getting a generator running and being able to test it.
- Rails 3.0 - Improved Validations.
- Rails 3.0 - Independent Validations. More info can be found here.
- Rails 3.0 - I18n changes.
- Rails 3.0 - Signed and Permanent cookies.
- Rails 3.0 - Gem and Plugin Compatibility Checker.
- Rails 3.0 - respond_with. More information can be found here and here.
- Rails 3.0 - Adding jQuery support. Here is some info on unobtrusive behavior.
- Rails 3.0 - Synchronizing Core Data With Rails (3.0.0.pre).
- Rails 3.0 - Improving application throughput 9x with asynchronous responses.
- Rails 3.0 - How to install paperclip.
- Rails 3.0 - Improved Security.
- Rails 3.0 - How to upgrade plugins to Rails 3.0.
- Rails 3.0 - Running on Windows 7.
- Rails 3.0 - Rails 3, RSpec, Factory Girl, Haml, and jQuery.
- Rails 2.3 - Release Notes
- Rails 2.3 - Templates. Read here and here to get the skinny.
- Rails 2.3 - Shallow Routes
- Rails 2.3 - Batch Finding.
- Rails 2.3 - Microformats - Explains the behind the scene working of Rails forms.
- Rails 2.3 - A Guide to Rails Metal.
- Rails 2.3 - Using Rails Metal to decouple upload from your Rails app.
- Rails 2.3 - Nested Object Forms
- Rails 2.3 - Nested Forms (not crazy about them).
- Rails 2.2 - 27 links and resources to get you started.
- Ruby Shortcuts - A good overview of clever shortcuts to help make your code more concise.
- Installing Ruby, Rubygems, Rails, and Mongrel on Mac OS X 10.5 (Leopard) - A tutorial worth considering if you are on a Mac.
- RailsFriend - Need help? Now you have a friend.
- Using .gemspecs as Intended
- 19 Rails Tricks Most Rails Coders Don’t Know
- 21 Ruby Tricks You Should Be Using In Your Own Code
- 5 little-known Rails methods.
- Debug Tutorial - Notes how to make the most of the ruby-debug gem.
- Mini reviews of 19 Ruby template engines
- Rails Routes - Check out the Gluttonous Guide and the Cheat Sheet.
- REST with Rails, Part 1.
- REST with Rails, Part 2: Serving XML, JSON and Atom
- REST with Rails, Part 3: Using ActiveResource.
- Powerful, easy, DRY, multi-format REST APIs - Learn how to make better use of RESTful architecture to representing your data in multiple ways.
- Easy Role-Based Authorization in Rails - Learn how to manage user roles.
- How to send multipart/alternative e-mail with inline attachments.
- Using Ruby for IMAP with Gmail.
- How to use Google’s SMTP server and Gmail to send emails with Ruby
- Using Gmail with IMAP to Receive Email in Rails
- Getting Exif data using ImageScience
- Block level helpers in Ruby on Rails
- Building a Social Network Site in Rails
- Better Cross-Site Request Forging Prevention - Learn how to use CSRF as well as enable/disable it in specific places if necessary.
- Simple jQuery With Rails
- The jSkinny on jQuery.
- Using jQuery with Ruby on Rails.
- Guide to Unobtrusive JavaScript - Learn how to separate JavaScript from being mingled with your view code.
- Unobtrusive jQuery + Rails - Get started on learning how to switch from Prototype to jQuery.
- Resolving the Rails Authenticity Token With jQuery.
- Rails, AJAX, and jQuery - More info on how to code unobtrusively with jQuery including REST and AJAX design.
- Converting videos with Rails.
- Select helper methods in Rails.
- Rails 2.1 Integrated Caching.
- Progressive Caching - A discussion on using page caching.
- Progressive Caching In-Depth
- How to Get A Job at a Top Ruby Shop
- 15 Questions to Ask During a Ruby Interview
- Tips for Hiring Ruby Developers
- Developing iPhone applications using Ruby on Rails and Eclipse
- iPhone app development with Ruby web services
- Unit Testing iPhone Apps with Ruby.
- Pretty Block Views in Rails - Learn to write more concise code for your views.
- The complete stes to install Merb and DataMapper from source.
- Sinatra: 29 Links and Resources For A Quicker, Easier Way to Build Webapps.
- Single-file Sinatra apps with specs baked-in
- Clone Pastie with Sinatra & DataMapper 0.9 - An alternative to getting a web up with Sinatra and DataMapper instead of Rails and ActiveRecord.
- Ruby FLV (flash) pseudo streaming implemented using Sinatra and Rack::Evil.
- How to add Google Maps to your Rails application.
- Maps, Geolocalization and Optimization with Maptimize
- How to use Google Reverse Geocoding from Ruby
- Ruby Daemon Module - A code snippet for a simple Ruby daemon.
- Ruby Daemons and Angels
- Getting Started with Merb: Part I
- Getting Started with Merb: Part II
- How to generate a Rails project using an older version of Rails.
- How to switch between different versions of Rails.
- Functional programming and looping - Teaches how to make better use of Array methods such as map, inject, select, etc. and when to use them.
- Understanding map and reduce - Expands upon the “Functional programming and looping” article above.
- MapReduce, with inspiration from functional programming - Continues the iterator discussion from the two links above. This time its about MapReduce.
- Localizing Rails - A nice tutorial with code examples that walks one through making the most of Rails localization support.
- Top 5 Uses for Capistrano - Get more out of Capistrano.
- Using Bundler in Real Life
- Bundler is the new hotness: deploying rails apps with bundler and capistrano
- DRYing up Rails Controllers: Polymorphic and Super Controllers
- Named Scope: It’s Not Just for Conditions, Ya Know?
- A Guide to Memoization - Discusses how to improve performance by focusing more on caching the results of frequently called methods.
- Domain Specific Languages in Ruby - Another primer for building a DSL.
- Implementing DSL Blocks - Another walk-through of building a DLS.
- How (& Why) to Run Autotest on your Mac
- Using Autotest For Rails Plugin Development - As the title implies, learn how to setup Autotest for plugin development.
- Pimp your autotest.
- Writing Macros in RSpec.
- Multiple Attachments in Rails - Rails doesn’t deal with uploading multiple attachments that well. This post discusses how to make multiple attachments work with a little JavaScript.
- MyUtil: Rake Task Transfer Rails Database - Learn about how this Rake task can help you transfer data from one database to another.
- Understanding Ruby Singleton Classes - Describes what they are, how they are interpreted, and how you can use them.
- Automatic Rails at Slicehost - Discusses automatic scripting for setting up your Rails server on a Slicehost account.
- Working with Video - Learn how to manipulate video with Ruby.
- Ruby Symbols - A good read on understanding symbols in Ruby.
- How to optimize Symbol#to_proc.
- 7 Tree Data Structure Plugins for Rails.
- Add a powerful AJAX Table to your Rails Application in 5 minutes.
- Amazon EC2 + Chef = Mmmmm
- Tutorial on hosting a RoR (Ruby on Rails) application on Amazon AWS with EC2 and EBS.
- Rails and Amazon: Libraries and Plugins for EC2, S3, SimpleDB, SQS, FPS and DevPay Integration.
- Built For Speed: Using Amazon CloudFront To Serve Assets
- Easy command line access to Amazon EC2, SQS, and S3.
- Using Amazon Simple Pay from Rails
- Getting S3 and SWFUpload to Cooperate in Rails
- irb and script console tips.
- Setting Up a Rails Development Environment on Windows.
- Performance Tuning for Phusion Passenger
- 28 Phusion Passenger (mod_rails) resources.
- Phusion Passenger on Leapard.
- Setup Ruby Enterprise Edition, nginx and Passenger (aka mod_rails) on Ubuntu
- Sub-domain recipes.
- Caching Rails Pages with Passenger and a Sub-URI
- Stopping your Rails application with Phusion Passenger
- Upload progress bar with mod_passenger and apache
- How-To Setup a Linux Server for Ruby on Rails - with Phusion Passenger and GitHub.
- Boost speed and save bandwidth with Apache’s mod_deflate
- Passenger Stack - “A collection of scripts for Marcus Crafter’s ‘Sprinkle’ tool, it allows you provision a standard Ruby on Rails / Rack server running Ruby Enterprise, Apache with Passenger, MySQL / Postgres and Memcached..”
- SASS: The Better, More Powerful CSS
- Ruby Redo Keyword - Learn about the Ruby redo keyword.
- Highlighting Text in Rails - Discover a little known helper that makes text highlighting easier.
- Building and Scaling a Startup on Rails: 12 Things We Learned the Hard Way
- How to keep gems and plugins up-to-date.
- Easily switch between Ruby 1.8.6 and 1.9.1
- Rails 118n Wiki - Tips, tricks, news, and resources dedicated to Internationalization for Rails.
- Understanding Ruby Blocks, Procs and Lambdas
- The Ruby Proc - A closer look at understanding and using procs in Ruby.
- Backing up your MySQL database to S3
- Utilize Canonical URLs in Your Rails Applications.
- Setup RSpec, Cucumber, Webrat, RCov and Autotest on Leopard.
- Getting Started with Webrat, Selenium, Rails and Firefox 3
- 8 tips for testing Rails apps with Cucumber
- Cucumber - A Real Testing Example
- Webrat matchers for HTML validation in Cucumber
- Testing rails generators with Cucumber
- Testing outbound emails with Cucumber.
- 20 articles on Cucumber and a free beverage recipe!
- Cucumber: Step Argument Transforms
- 5 Things You Don’t Know About User IDs That Will Destroy You
- Exceptional Confusion - Learn how to write better exception by not rooting everything off the Exception class.
- 2009 Rubyist’s guide to a Mac OS X development environment
- Write an Internet search engine with 200 lines of Ruby code
- 2009 Rubyist’s guide to a Mac OS X development environment
- Autoload - Learn more about how and when to use autoload in Ruby code.
- All That You Might Require - More information on Ruby autoload.
- How to Add Simple Permissions into Your Simple App.
- Advanced Messaging & Routing with AMQP
- Write a 32-line chat client using Ruby, AMQP & EventMachine (and a GUI using Shoes).
- Getting Rails to Play with Legacy Oracle Databases.
- Ruby Currying - Learn more about how to curry with Ruby.
- How to Compare Hosted DNS Providers (with Data!)
- OAuth Explained and What It Is Good For
- Deploy Your Rails Application in 2 Minutes with Heroku.
- Setting Up Custom Heroku Domains.
- Using Heroku Maintenance Mode.
- Deploying Multiple Environments on Heroku
- Save on Heroku’s Custom SSL addons
- Deploying Multiple Environments on Heroku
- Deploying multiple environments on Heroku (while still hosting code on Github)
- LDAP Pass-through Authentication with Authlogic and ActiveLdap
- Do not burden your users with validations
- Conditional Validation using with_options to improve readability.
- Web Hooks in Ruby on Rails
- Validating Data with Regular Expressions in Ruby
- Tips for writing your own Rails engine
- Installing Sphinx with Postgres on Leopard
- Creating our very first Mac application with Ruby, how exciting!
- Asynchronous Table Views With MacRuby
- Test Driven Development in Objective-C with MacRuby
- A dozen (or so) ways to start sub-processes in Ruby: Part 1
- A dozen (or so) ways to start sub-processes in Ruby: Part 2
- A Dozen (or so) Ways to Start Subprocesses in Ruby: Part 3
- Ruby Fibers: 8 Useful Reads On Ruby’s New Concurrency Feature
- Breathe fire over HTTP in Ruby with Typhoeus
- CouchDB with CouchRest in 5 minutes
- Access The Etsy API in Ruby
- 5 Tips to Scale Your Ruby on Rails Application
- Consuming XMPP PubSub in Ruby
- Finding Visitor Locations in Rails
- Why I think Mongo is to Databases what Rails was to Frameworks
- Learn how to get Ruby on Rails working on Google App Engine.
- Publish Your Ruby Documentation on Github with Rdoc.info
- Testing HTTP Authentication
- Basics: Why every rails dev should track 404 pages
- Simple APIs using SerializeWithOptions
- RVideo for video processing and inspection
- Wildcard search with Thinking Sphinx
- Drag & Drop Sortable Lists
- Talking to Wordpress with ActiveRecord
- How to create a proxy class in ruby
- Scheduling in Ruby
- Twitter AMQP WebSocket Example (no polling)
- Generating Thousands of PDFs on EC2 with Ruby
- Get your local Rails application ready for I18N.
- 11 Things to Consider Before Deploying Your Rails Application
- ActionMailer#deliver - Part I
- ActionMailer#deliver - Part II
- ActionMailer#deliver - Part III
- ActionMailer#deliver - Part VI
- ActionMailer#deliver - Part V
- ActionMailer#deliver - Part VI
- The Full Detail on Database Indexes.
- More Advanced Ruby Method Arguments – Hashes And Block Basics.
- Shared Behaviors in Screw.Unit or how to DRY up your javascript specs
- A command-line prompt with timeout and countdown
- Unit Testing Filesystem Interaction
- Embedding a Google Wave into Ruby on Rails
- Using Ruby Blocks And Rolling Your Own Iterators
- How to avoid the dog-pile effect on your Rails app
- That’s Not a Memory Leak, It’s Bloat
- Custom Shoulda macros - A tutorial
- Inherited View Templates with Rails
- Tune your Ruby Enterprise Edition garbage collection settings to run tests faster
Documentation
- Rails Wiki
- Ruby on Rails Guides - A collection of guides to help you understand the various aspects of Rails better.
- Rails Engines - A good staring point for all your engine learning.
- Ruby Net::HTTP Cheat Sheet - A handy GitHub repository of useful code snippets.
API
- Ruby Docs - Additional Ruby documentation and resources.
- Ruby Core API
- Ruby Standard API
- API Doc - Provides quick keyword search capabilities as well as community comments for Ruby and Ruby on Rails.
- Got API - An alternative to API Doc but not as easy on the eyes. Depends on your temperament, of course.
- Ruby on Rails API
- RailsBrain - Provides a faster way of navigating the Ruby on Rails API.
- Noobit - A central source for Ruby, Ruby on Rails, and Ruby Gems documentation.
- Rdoc Info - Documentation for open source projects as found on GitHub.
For those into Rails, more information can be found on The Ruby on Rails Link Library site.
Tutorials
- Railscasts - Short screen cast tutorials of Ruby on Rails code.
- Envy Casts - Produced by the same guys that host the Rails Envy podcasts. Each screen cast tutorial will set you back about $9.
- PeepCode - Screencast tutorials like Railscasts but longer in length and not free (roughly $9 per episode).
- Tekniqal - A collection of screencasts that cover some of the Ruby basics.
- Scaling Rails - A series of screencasts on detailing how to scale your Ruby on Rails application appropriately. Produced by Gregg Pollack of Envy Cast fame.
- BDD Casts - Video tutorials on all things related to Behavior Driven Development.
News
- A Fresh Cup - My personal favorite. While you can find similar news via the links below, Mike Gunderloy does an excellent job of summing everything up in place for news, information, and new gems from the Ruby community.
- Ruby Toolbox - A great trending site for finding out what gems are hot and most popular within the Ruby community. This can save you a lot of time when you want to know which gem is the best solution for a problem that has already been solved.
- Ruby Trends - Another trending site. Useful for cross-checking against Ruby Toolbox on what is hot.
- Ruby News - Straight from the source. Find about new releases, conferences, developments, etc.
- Ruby Inside - The inside scoop on Ruby news.
- RubyFlow - A great site for picking up new resources to add to your development repertoire.
- RubyFu - Useful quick news and resource links.
- Ruby Best Practices - A great source of thoughtful discussion, including code samples, on how to write better code.
- Ruby5 - From some of the same guys who provide the Rails Envy podcast below. This is another podcast on Ruby news but in short, 5-minute, segments of usually discussing many of the new and interesting gems being developed.
- Rails Inside - Get the inside scoop on Rails news.
- Riding Rails - Learn what is happening with the Ruby on Rails team.
- Rails Spikes - A multi-authored site of Ruby developers discussing news, tips, code, etc.
- Rails Illustrated - Info on Rails, web design, and the user experience.
- Rails Notes - Another site worth checking out and picking up new learning.
- Rails Tips - As the site description goes: “One man, feverishly posting everything he learns.”
- The Rails Way - News and information dedicated to teaching best practices of Ruby on Rails.
- Ruby on Rails Security Project - A good place to read up on security issues or at least keep your mind in it.
- Giant Robots Smashing Into Other Giant Robots - Good development tips and tricks, mostly related to Rails.
- Ryan’s Scraps - Interesting news on what’s new and upcoming within the Rails code base. Includes code samples and detailed descriptions and examples of new Rails features.
- Has Many Through - Although he has a low writing frequency, the posts are enlightening.
- The Ruby Show - An entertaining and informative weekly podcast dedicated to Ruby, Rails, and web framework news.
- Rails Podcasts - Ruby/Rails podcasts by Geoffrey Grosenbach of PeepCode fame.
- Rails Magazine - News, articles, and information about the Ruby on Rails framework.
Mailing Lists
Communities
- Act as Community - Nice site design but slow to use. Not sure if it is a Rails problem or a hosting problem. I am member as well.
Books
- Mr. Neighborly’s Humble Little Ruby Book by Jeremy McAnally.
- Programming Ruby 1.9: The Pragmatic Programmers’ Guide by Dave Thomas, Chad Fowler, and Andy Hunt.
- Ruby Cookbook by Lucas Carlson and Leonard Richardson.
- The Ruby Way: Solutions and Techniques in Ruby Programming (Second Edition) by Hal Fulton.
- Build Your Own Ruby on Rails Web Applications by Patrick Lenz.
- Agile Web Development with Rails, Third Edition by Sam Ruby, Dave Thomas, David Heinemeier Hansson, et al.
- Ruby for Rails: Ruby Techniques for Rails Developers by David Black
- Rails Recipes by Chad Fowler.
- Ruby on Rails Security - A complete book on things you should know about securing your web application.
- RESTful Rails - A downloadable PDF for learning how to build RESTful Rails applications.
- Jump Start Credit Card Processing - A free download written by Amy Hoy. Explains the lifecycle, provides getting started tips, and other useful info.
- Rails Prescriptions - Free PDF books for getting started with test driven development along with other tips, tutorials, and strategies for testing your applications.
- Regular Expressions in a Nutshell - A freely downloadable cheat sheet for regular expressions. BTW, I recommend keeping Rubular bookmarked as a quick tool for building and testing regular expressions.
- Scripting Mac Applications With Ruby: An AppleScript Alternative - An online book for developing Ruby applications that interact and make use of AppleScript.
Tools
- TextMate - Lightweight, fast, and costs $30. For the MacOS platform only.
- NetBeans - Developed by Sun and free to use. Works on multiple platforms.
- Aptana - Adds Ruby on Rails support to the Eclipse IDE. Visit the software update site to install directly into Eclipse.
- Dynamic Languages Toolkit (DLTK) - Another way in which to enable Ruby on Rails support within the Eclipse IDE. Here are some tips on installing and configuring the DLTK.
Middleware
- Modernizr - Queries the web browser to determine what its capabilities are and stuff this data in a cookie that can be used server and client-side.
CoffeeScript
Gems
Ruby Gems allow one to discover and install additional packages that do not come standard with the base Ruby distribution.
Here is documentation on how to build a gem properly:
- RubyGems Guides
- Writing Ruby Gems
- Developing a RubyGem using Bundler
- Building a Ruby Gem (From Scratch) Using Behavior Driven Development
- Clarifying the Roles of the .gemspec and Gemfile
- Using bundler and rvm to build a rubygem
- Ruby gems - what, why and how
- Autotest your rubygem
- Better Ruby Idioms - How to use include/exclude in gems
- Running Rails Rspec Tests - Without Rails
- Cloud Foundry - Command Line Interfaces With Thor
Here are a few gems worth considering:
- Gembox - “Gembox is a very simple web based application for browsing your local ruby gems.”
- Ruby Version Manager - An easy and awesome way to manage multiple Ruby versions on the same system.
- Bundler - “Bundler is a tool that manages gem dependencies for your ruby application. It takes a gem manifest file and is able to fetch, download, and install the gems and all child dependencies specified in this manifest. It can manage any update to the gem manifest file and update the bundle’s gems accordingly. It also lets you run any ruby code in context of the bundle’s gem environment.”
- Hirb - A mini IRB framework including no-wrap table, auto-pager, tree and menu.
- Wirble - Colorizes the IRB amongst other things.
- Looksee - “Examine the precise method lookup path of any ruby object in ways not possible in standard ruby.”
- Awesome Print - Prints Ruby objects with style, making complex nested arrays, hashes, etc. easier to read on the eyes. You can customize the color coding as well.
- RSpec- A Behavior Driven Design (BDD) testing framework for Ruby and other languages. Can also be used as a plugin to Rails. For MacOS users, check out RSpactor as a app for automatically monitoring and running your RSpec tests.
- Remarkable - Makes building RSpec tests easier.
- Cucumber - An add-on to RSpec that supports story testing. Learn how to get started: Part 1 and Part 2.
- Pickle - “Easy model creation/reference in cucumber - optionally leveraging your factories/blueprints.”
- Launchy - “A helper for launching cross-platform applications in a fire and forget manner.”
- Mocha - A mocking and stubbing library. Works with many of the other testing frameworks out there. Can be installed as a Rails plugin as well.
- Machinist - Easily generate test data rather than deal with fixtures.
- Webrat - Allows you to write robust and easy web acceptance testing.
- Mechanize - “The Mechanize library is used for automating interaction with websites. Mechanize automatically stores and sends cookies, follows redirects, can follow links, and submit forms. Form fields can be populated and submitted. Mechanize also keeps track of the sites that you have visited as a history.”
- FakeWeb - “A helper for faking web requests in Ruby. It works at a global level, without modifying code or writing extensive stubs.”
- Watchr - “Modern continuous testing (flexible alternative to Autotest).”
- ZenTest - An auto-tester that works with RSpec.
- Autotest Fsevent - A Mac-friendly auto-tester.
- Roodi - A code cleanup tool that warns and/or questions your code.
- Flog - Uses ABC metrics to analyze the complexity of your code.
- rcov - A code coverage tool that can also generate HTML charts.
- reek - “A tool that examines Ruby classes, modules and methods and reports any code smells it finds.”
- Towelie - Identifies code duplication to help keep code DRY.
- Flay - Similar to Towelie and possible better in coverage but not as easy to read the output it generates.
- Capistrano - One of the first tools to automate the deployment of web applications.
- Vlad the Deployer - Programmatic application deployment.
- Moonshine - “Rails deployment and configuration management done right. ShadowPuppet + Capistrano == crazy delicious.” Here are some details for a Ubuntu setup.
- Facets - What you can’t find in the base Ruby library you might find with this gem.
- Ruby on Rails - A database supported framework for web application development using the Ruby language.
- MetaWhere - Enhances the default Arel syntax found in Rails with the extra syntax you might be miss. For example: like, gt, lt, etc.
- MetaSearch - Enhances the search capabilities necessary for complex searches on your models.
- Rack - A modular web server interface for Ruby programs (in case you wanted an alternative to Ruby on Rails). Get introduced, watch a few screencasts, and check out 32 links that will help you get started.
- Rack Cache - “A quick drop-in component to enable HTTP caching for Rack-based applications that produce freshness (Expires, Cache-Control) and/or validation (Last-Modified, ETag) information.”
- SQLite3 - Adds Ruby support for the SQLite3 database. To install type:
sudo gem install sqlite3-ruby. - MySQL - Adds Ruby support for the MySQL database. To install (MacOS) type:
sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config. - Oracle Enhanced Adapter - Enhanced adapter for Oracle databases with additional configuration options.
- Feed-Normalizer - Normalizes any RSS feed so that you can access from a generic class.
- Ferret - Inspired by the Apache Lucene project, Ferret is a text search engine for Ruby.
- Picolena - A Ferret-power document search engine that claims to be lightweight and speedy.
- Active Merchant - Originally developed for Shopify, it adds financial processing to Ruby and/or Rails applications.
- Active Shipping - A shipping API extension to Active Merchant.
- Active Record Extensions - Adds functionality and performance enhancements to Active Record.
- Sortable - Enables sorting of ActiveRecords in multiple lists and scopes.
- Ancestry - “Organize ActiveRecord model into a tree structure.”
- Acts as State Machine (AASM) - One of the more popular state machines.
- Alter Ego - An implementation of the Gang-of-Four’s state pattern.
- Acts as List - Allows records to be sorted and organized as lists.
- Acts as Commentable - Allows for comments to be easily added to different models.
- Couch Foo - Provides an ActiveRecord API interface to CouchDB.
- Ruby OSA - Enables Ruby programs to manipulate MacOS applications in much the same fashion as AppleScript.
- AppScript - “Appscript is a high-level, user-friendly Apple event bridge that allows you to control scriptable Mac OS X applications from Python, Ruby and Objective-C.”
- GPS Receiver Reader - Use this to interpret GPS data.
- libxml - An XML parsing library that claims to be fast and feature rich. Read about resurrecting libxml-ruby to learn more.
- Hpricot - An HTML parser for Ruby.
- Nokogirl - Another HTML/XML parser. Claims to be fast.
- Hoshi - Makes creating HTML/XHTML/XML views easier.
- MMS2R - “A library that decodes the parts of an MMS message to disk while stripping out advertising injected by the mobile/cellphone carriers.”
- Pool Party - “An open source tool that automates deployment, monitoring, and load balancing of [Amazon] EC2 instances.”
- SOAP4R - The SOAP implementation for Ruby. You can get started here.
- Handsoap - A library for creating SOAP clients.
- BackgroundDRb - A Ruby job server and scheduler for running background tasks asynchronously. Warning: This is heavyweight, error prone, and not that easy to use.
- Daemon Controller - A library for managing daemon threads.
- DataFlow - A gem for managing thread concurrency.
- HTTParty - A convenience library for modeling response objects such as JSON, XML, etc. Read more about it if you like.
- JSON - A JSON data wrapper that can be parsed as a Ruby object.
- Siren - “JSON parser that understands cross-references and casts to typed Ruby objects. Implements JSONQuery against JSON trees and Ruby object graphs.”
- PDF Writer - A library with some excellent documentation for generating PDF documents. Check out Railscast, Episode 78 to learn more.
- Prawn - A library for generating PDF documents. Check out the prawnto plugin and Railscast 153 for more info.
- wkhtmltopdf - Converts HTML documents to PDF.
- Config Toolkit - Makes parsing configuration files easy in Ruby.
- Configatron - Similar in nature to the System Settings plugin for Rails, this makes configuring/customizing your app easier. Developed by the same guy responsible for the Mack framework. Check out this tutorial for getting started.
- Adhearsion - A VoIP library.
- NeverBlock - Built upon Ruby 1.9, NeverBlock allows one to write transparent, non-blocking, concurrent code.
- Doodle - A library that simplifies the definition of Ruby classes by making attributes and their properties more declarative.
- Markaby (a.k.a. Markup as Ruby) - Allows you to write Ruby code to easily generate HTML without having to mess with the HTML syntax. Can also be installed as a plugin to Rails.
- Erector - “Erector is a Builder-like view framework, inspired by Markaby but overcoming some of its flaws.”
- RedCloth - A module that adds Textile capabilities to Ruby for writing semi-static pages that need HTML syntax but where you don’t want to actually write in HTML.
- BlueCloth - Similar in capability to RedCloth but uses Markdown syntax.
- Rote - “Rote is a simple page-based template system that was written to make it easier to author and maintain non-dynamic websites and offline documentation. Rote provides a simple command line or Rake based build for your pages, with page rendering (optionally supporting RDoc formatting, Textile and Markdown with RedCloth and ruby code with ERB), layout, and general documentation / website build tasks.”
- Webby - A simple and tiny content management system for your web app (well, sort of). Follow the link to learn more.
- WeatherMan - Encapsulates the XML API from weather.com so that you can easily manipulate the data.
- RMagic - A Ruby interface to the ImageMagick and GraphicsMagick image processing libraries. In order to install RMagic one of those image process libraries must be installed and configured first. Try installing ImageMagick from source first. Then type the following to install the gem:
sudo gem install rmagick. - MagickWand - “An interface between the Ruby programming language and the ImageMagick image processing library.”
- FFMPEG-Ruby - A Ruby wrapper to the C-library for dealing with video files.
- Vimeo - A full-featured ruby interface for the Vimeo API.
- Kronic - A natural language time parser.
- Briad - A simple tool for tracking SVN and GIT repository branches.
- Garlic - Lightweight continuous integration for rails using git.
- Pony - A lightweight and quick way to send e-mail with just one command.
- Blackbook - A contact importer/exporter for various social services like Hotmail, Gmail, etc. Supports exporting capabilities for hashes, vCards, and XML.
- Asset Copier - An asset copier for your Rails plugins.
- GeoKit - Provides the ability to calculate distance, compute lat/long on a model, compute lat/long from a snail address, and much more.
- GeoIP - “The Ruby gem for querying Maxmind.com’s GeoIP database, which returns the geographic location of a server given its IP address.”
- Simple Geo - A Ruby client for the Simple Geo API.
- Strongbox - Uses public key encryption to secure ActiveRecord attributes.
- attr_encrypted - Encrypt and decrypt attributes transparently.
- hattr_accessor - Allows one to define accessors that reference members of a hash.
- Twitter - Manipulate your Twitter data. Has identi.ca support as well. To learn more, go here.
- twitter2rss - “Read your twitter feed, including direct messages and malformed @replies, via RSS.”
- TwitterAuth - A full authentication stack for integrating Twitter with your Rails app using both OAuth and HTTP Basic authentication. Read more here.
- Daemon Kit - A gem for creating daemon skeletons along with rake tasks for management of your daemons. Here is a guide on handling cronjobs too.
- Resume2 - Provides a command line tool for managing your resume from a central YAML file.
- Jekyll - A blog-aware, static site generator.
- authlogic - One of the better authentication systems with lots of flexibility. Check out the tutorials to get started.
- Devise - “A flexible authentication solution for Rails with Warden.”
- Clearance - Developed by thoughbot, it adds authentication and authentication testing to your Rails app.
- Declarative Authorization - “User authorization rules are not defined programmatically in between business logic but in an authorization configuration.”
- CanCan - “This is a simple authorization solution for Ruby on Rails to restrict what a given user is allowed to access in the application. This is completely decoupled from any role based implementation allowing you to define user roles the way you want. All permissions are stored in a single location for convenience.”
- Rufus Scheduler - A cron-like date/time scheduler. Can also be tailed for use in a Rails app. Learn more here.
- Titleizer - Smarter capitalization for titles.
- Encryptor - “A simple wrapper for the standard ruby OpenSSL library.”
- Sprockets - “Sprockets is a Ruby library that preprocesses and concatenates JavaScript source files. It takes any number of source files and preprocesses them line-by-line in order to build a single concatenation.”
- Jammit - “An industrial strength asset packaging library for Rails, providing both the CSS and JavaScript concatenation and compression that you’d expect, as well as YUI Compressor and Closure Compiler compatibility, ahead-of-time gzipping, built-in JavaScript template support, and optional Data-URI/MHTML image embedding.”
- Sprinkle - A software provisioning tool for building a Ruby stack on a slice in a quick and easy fashion. For example, check out the Passenger-Stack script.
- Feedzirra - “A feed fetching and parsing library that treats the internet like Godzilla treats Japan: it dominates and eats all.”
- Acts as Taggable On - Adds tagging capabilities to ActiveRecords.
- timeline_fu - Easily build timelines.
- Scruffy - A library for generating graphs and visualization of data using SVG.
- Seer - “A lightweight, semantically rich wrapper for the Google Visualization API. It allows you to easily create a visualization of data in a variety of formats, including area charts, bar charts, column charts, gauges, line charts, and pie charts.” More info here.
- DataFabric - Enabled ActiveRecord database connections to be sharded.
- Infuse - “Create HTML slide shows with a simple DSL.”
- Formtastic - A Rails form builder plugin with semantically rich and accessible markup.
- Scrooge - An ActiveRecord query optimizer.
- Git Remote Branch - Easily manage remote branches with Git.
- Ghost - Allows you to create, list, and modify host names with ease.
- Lockdown - An authorization system for Ruby on Rails.
- Radarb - A ruby gem that makes using the http://outside.in API simple.
- CloudKit - “CloudKit provides schema-free, auto-versioned, RESTful JSON storage with optional OpenID and OAuth support, including OAuth Discovery.”
- Sanitize - A whitelist-based Ruby HTML sanitizer.
- Integrity - A continuous integration server. Learn more.
- Open Social - Allows you to work with Google OpenSocial data on your server.
- ChocTop - Packages and deploys any Cocoa application in a custom DMG, with generated Sparkle XML support.
- Taps - A database import/export tool.
- excelsior - A really fast CSV file reader.
- Comma - “A small CSV (ie. comma separated values) generation extension for Ruby objects, that lets you seamlessly define a CSV output format via a small DSL”.
- Write Excel - Generates Microsoft Excel binary output.
- Whenever - Build UNIX cron jobs easier in Ruby without having to deal with confusing cron syntax.
- Simple Form - “Simple easy contact form for Rails with I18n, validations, attachments and request information.”
- Safe - A simple backup solution for mysql and Postgres files.
- Octopi - A Ruby interface to the GitHub API.
- Railroad - A class diagram generator for Ruby on Rails apps. It allows you to easily generate diagrams showing your model relationships and attributes (done by analyzing your model associations and migrations).
- REST Client - A simple REST client.
- REST - Add one line of code to your controller and, presto, you get all seven REST actions for free. It is also very customizable and unobtrusive.
- Hammock - “Eliminates redundant code in a very RESTful manner. It does this in lots in lots of different places, but in one manner: it encourages specification in place of implementation. “
- Described Routes - “Dynamic, framework-neutral metadata describing path/URI structures, with natural translations to/from JSON, YAML and XML.”
- AndAnd - Allows you to guard against nil values in chained methods.
- GreenGreen - “A tool for assuring quality metrics of 100% quality.”
- Nanite - A “self assembling fabric of ruby daemons.”
- AMPQ - “AMQP client implementation in Ruby/EventMachine.”
- Semantic Menu - Adds site navigation support to your app.
- YARD - “A documentation generation tool for the Ruby programming language. It enables the user to generate consistent, usable documentation that can be exported to a number of formats very easily, and also supports extending for custom Ruby constructs such as custom class level definitions. What’s this mean? It means YARD is a great tool to document applications that make use of DSLs.”
- Trample - A load simulator for testing how your app holds up against heavy traffic.
- Sunspot - “All the power of the Solr search engine; all the beauty of Ruby. Sunspot exposes all of Solr’s most powerful search features using an API of elegant DSLs.”
- Barometer - “A multi API consuming weather forecasting superstar.”
- Curb Fu - “Simple, yet powerful wrapper for taf2’s curb (libcurl) library.”
- Externals - “Quickly freeze and unfreeze external git dependencies.”
- RiCal - An RFC 2445 (iCalendar) for Ruby.
- SMS on Rails - “Provides an interface and ORM framework for sending and storing SMS messages through Email Gateway or with Clickatell HTTPS.”
- Active URL - Aids in generating secret URLs which is useful for new user registration.
- Garb - Provides an API to the Google Analytics service.
- Google AdWords - “Lets developers design programs that interact directly with the AdWords platform.”
- Enhanced Select - An enhanced select helper for forms that allows you to use the full HTML spec for select option elements.
- RIO - A useful Ruby I/O library.
- Ruby Invoicing Framework - “A collection of tools which provide the basic mechanisms for supporting financial transactions within your own application.”
- Sumo - Quickly and easily launch EC2 instances.
- Warp Drive - “Completely bundle up an entire Rails application into a gem, then load it into another application.”
- Bullet - “Designed to help you increase your application’s performance by reducing the number of queries it makes.”
- Fog - Makes accessing the cloud a little easier.
- Deadweight - A CSS coverage tool.
- Simple Importer - “a simple API for importing CSV files.”
- Sinatra - An extremely lightweight web framework that can be written up in a single file.
- Sinatra More - “Provides a suite of helpers and extensions to allow for more complex sinatra apps.”
- Shotgun - “This is an automatic reloading version of the rackup command that’s shipped with Rack. It can be used as an alternative to the complex reloading logic provided by web frameworks or in environments that don’t support application reloading.”
- Webbynode Safe - “Simple tool to backup databases (MySQL, PostgreSQL and MongoDB) and filesystem locally or to Amazon S3 (with optional encryption).”
- Happening - An Amazon S3 client with EventMachine support built in.
- WYSIHat Engine - “A Rails engine to help integrate the 37signals WyshiHat rich text editor to your application.”
- Mongo Mapper - Enables one to model a domain and store it in a Mongo DB.
- racksh - Provides a console for any Rack based ruby web application.
- Ruby Best Practices - “A gem to check quality of rails app files according to ihower’s presentation from Kungfu RailsConf in Shanghai China.”
- Net HTTP Spy - Allows one to inspect the HTTP requests made to a third-party API and see what is happening behind the scenes.
- Mail Safe - “Provides a safety net while you’re developing an application that uses ActionMailer. It keeps emails from escaping into the wild.”
- Heroku Asset Packager - Compresses and minifies all CSS and JavaScript for Heroku apps.
- Gravatarify - Easily adds gravatar support to your Ruby application.
- Searchlogic - “Searchlogic makes using ActiveRecord named scopes easier and less repetitive.” Includes polymorphic association and Geokit support.
- Vestal Versions - Adds version tracking to your models by only using one table via polymorphic association.
- Paper Trail - “Track changes to your models’ data. Good for auditing or versioning.”
- Versionomy - Provides an easy way to deal with version number strings.
- Health Monitor - “Monitor individual aspects of your rails application’s health.”
- Statistics - “An ActiveRecord plugin that makes it easier to do reporting.”
- Eventful - Additional enhancements beyond what you get with the basic observer capabilities with ActiveRecord.
- Dry Scaffold - “A Rails scaffold generator that generates DRYer, cleaner, and more useful code.”
- Composite Primary Keys - One solution for primary keys out of composite keys.
- Patron - “Patron is a Ruby HTTP client library based on libcurl. It does not try to expose the full “power” (read complexity) of libcurl but instead tries to provide a sane API while taking advantage of libcurl under the hood.”
- Bowline - Ruby, HTML, and JavaScript framework that allows you to leverage your web knowledge on the desktop.
- Shipping Logic - “A simple and straight forward interfaces to the various shipping web services: FedEx, UPS, USPS, etc. (Only FedEx is supported at this time).”
- RCapture - “A Ruby library that allows placing hooks on methods using a convenient interface.
- Churn - “A project to give the churn file, class, and method for a project for a given checkin Over time the tool adds up the history of chruns to give the number of times a file, class, or method is changing during the life of a project. Churn for files is immediate, but classes and methods requires buildings up a history using churn between revisions. The history is stored in ./tmp “
- Request Log Analyzer - “A simple command line tool to analyze request log files in various formats to produce a performance report. Its purpose is to find what actions are best candidates for optimization.”
- Amp - “A general-purpose version-control system. It currently implements Mercurial, and we hope to support git, bazaar, svn, cvs, and darcs in the future.”
- Rails Best Practices - “A gem to check quality of rails app files according to ihower’s presentation Rails Best Practices from Kungfu RailsConf in Shanghai China.”
- has_price -”It organizes your price breakdowns and allows for easy retrieval of price subgroups and subtotals, as well as simple serialization for your receipts.”
- Auto Sprite - Helps manage your images as one sprite file along with CSS generation.
- CSS Sprite - Generates a CSS sprite image file along with CSS styling for your web app.
- Whois - “An intelligent pure Ruby WHOIS client and parser.”
- Harmony - “Provides a simple DSL to execute javascript + DOM code within ruby.”
- Holy Grail - “Testing for front-end development; execute browser-less, console-based, javascript + DOM code right from within your Rails test suite.”
- Observational - “Use the observer pattern to better divide your objects’ responsibilities.”
- Distance of Time in Words - A more complete and verbose enhancement to the default capabilities found in Rails.
- Qwandry - Easily open a gem’s source within your favorite editor.
- scRUBYt - “A simple but powerful web scraping toolkit.”
- Scrapi - Another screen scrapping API.
- Hijack - “Allows you to connect to any ruby process and execute code as if it were a normal irb session.”
- Cloud Crowd - Enables parallel processing.
- Vagrant - Automated virtual machine instances via Sun’s VirtualBox software.
- Apple Push Notification (APN) - “Allows you to easily add Apple Push Notification (iPhone)
support to your Rails application.”/li> - Install Theme - “Use any HTML template as a theme generator for your Rails app. Installs an HTML template, and its CSS, JavaScript and image assets into your Rails app, ready to go in an instant.”
- Validates Timeliness - “Date and time validation plugin for Rails 2.x and allows custom date/time format.”
- Validates Date Time - “Adds the ability to do stricter date and time checking with ActiveRecord.”
- Memprof - A memory profiler.
- Fancy Buttons - Adds visually pleasing button support using CSS and Compass.
- ActiveScaffold - Built on top of Rails, it is a scaffolding plugin for quickly generating UI on your models.
- Streamlined - A scaffolding plug-in for quickly building views.
- Hobo - A collection of scaffolding plug-ins designed to make generating UI around your models much easier.
- Flex Scaffold - Allows you to build Flex scaffolding to your RESTful controllers.
- Typus - Easily adds an admin interface for Ruby on Rails applications. Great looking and easy to use. Great for easily propping up admin interfaces.
- Annotate Models - “Add a comment summarizing the current schema to the top of each ActiveRecord model source file.”
- Pacecar - Adds class methods to your models that can reduce writing named scopes as well as work in conjunction with named scopes.
- ar-extensions - Extends and enhances the default functionality of ActiveRecord such as mass data import and exporting to CVS via the “to_csv” method.
- Live Validations - “Reads Active Record’s validations and makes them available to live client side javascript validation scripts.”
- Validatious - It maps model validations to class names on form elements to easily integrate with ActiveRecord validations for client-side validations.
- Custom Error Messages - Have complete customization over your ActiveRecord error messages.
- Archive Tree - Adds parent/child hierarchy relationships to your database models.
- Acts as Snook - “A comment spam solution that doesn’t rely on CAPTCHAs, Javascript, or external web services.”
- Acts as Voteable - Easily makes your models voteable.
- Acts as Revisable - Like Acts as Versioned but with precise control over version details.
- Acts As Paranoid - Stores time of ActiveRecored deletion in a “delete_at” attribute.
- Acts as Unvolgable - Enables the ability to embed external video sources in your web application.
- Quick Scopes - A set of named_scopes that you might use on a regular basis: limit, order, where, with, etc. Follow the link to learn more.
- Stripper - Removes leading and trailing blanks from attribute values in your models.
- Nilify Blanks - Ensures records data stays nil when nothing is submitted. This is especially useful for those form fields where data is not required but still ends up as an empty string in your database. Now you don’t have to worry by using this gem instead.
- Custom Timestamps - “Use different columns then created_at and updated_at for timestamps.”
- Cache-Money - A read/write-through caching library for ActiveRecord.
- Shoulda - Enhances Test::Unit framework for Rails applications.
- Mephisto - A CMS for Rails but more focused for blogging.
- Typo - Another CMS for Rails with a focus on blogging.
- Radiant - A stripped down, bare bones CMS for Rails. Supports a powerful tagging system and includes extension support.
- Adva CMS - A Ruby on Rails engine for adding CMS capabilities to your site.
- Community Engine - Enables many of the features you would need in building a social community web site such as tag clouds, RSS feeds, user profiles, etc. Learn more here.
- Tog - A collection of tools to make adding social capabilities to your Rails app.
- Mustache - An alternative template solution to ERB that allows for logic-free views.
- Haml - Adds a new and possibly more elegant way of building views for your Rails apps.
- LESS - “Extends CSS with: variables, mixins, operations, and nested rules.” It also uses exesting CSS syntax so you can rename your .css files to .less and it’ll all work.
- Sass - Syntactically Awesome Stylesheets. “Sass is CSS, plus nested rules, variables, mixins, and more, all in a concise, readable syntax.” Resources: Getting Started, Stop Making Sprites.
- Bourbon - SASS commonly needed Mixins provided by ThoughtBot.
- More - “More is a plugin for Ruby on Rails applications. It automatically parses your applications .less files through LESS and outputs CSS files.”
- MemCached - “A high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.” To learn more, check out these tutorials: Basics for Rails and MemCached in Ruby on Rails.
- Paperclip - Offers an easier way of handling file uploads.
- Goodby Attachment Fu, Hello Paperclip
- Graceful Degradation with Default Gravatars
- multiple attachments with validations
- Speed up your tests.
- Delayed Paperclip - A gem for delayed attachment uploads.
- Speeding up thumbnail generation with Paperclip
- Rails, Paperclip, -auto-orient, and resizing.
- Authenticated attachments in Rails with Paperclip
- Receiving and Saving Incoming Email Images and Attachments with Paperclip and Rails 3
- Paperclip Custom Interpolations
- Optimize your Images
- Protecting your Paperclip downloads
- Attachment Fu Manages file uploads. Can also be used to upload via URL as well.
- Make Resourceful - Easily add RESTful actions to your controllers for basic operations. A good way to get off the ground and running for common functionality.
- Mod Porter - Adds better scaling for multiple file uploading.
- Resource Controller - A controller/scaffolding that provides the basic 7 REST methods for you, keeping your code DRY.
- Restful Transactions - “Ensure that any Ruby on Rails controller action executed within a POST, PUT or DELETE request is wrapped in a transaction.”
- Restful Authentication - Adds user authentication to your web app. To learn more, read restful authentication and stateful authentication.
- Seed Fu - Go beyond basic fixtures and use this to seed your Rails database.
- TextMate Syntax Highlighting - Allows you to display code using highlighting as found in TextMate.
- Metric Fu - Measures performance metrics and includes code sniffing tools such as Flay, Reek, and Roodi. Integrates well with Continuous Integration. Read more.
- Rails iUI - Aids in developing your web application for the iPhone.
- Palmist - Helps find and fix MySQL bottlenecks.
- Javascript Auto-Include - Automatically includes and loads JavaScript on a per controller basis.
- Rubber - “Enables relatively complex multi-instance deployments of RubyOnRails applications to Amazon’s Elastic Compute Cloud (EC2).”
- Calendar Helper - Render a calendar view of previous, current, and future months with your views. Comes with CSS stylesheet support to help get you started. Check out later_dude for i18n support.
- Event Calendar - “Easily show multiple, overlapping events across calendar days and rows.”
- Reservation Calendar - “Easily show multiple, overlapping reservations across calendar days and rows.”
- WeeklyBuilder - Provides a monthly/weekly calendar view to your for your web app.
- Calendar Date Select - A JavaScript-based date/time picker that has an impressive set of features. Make sure to check out the demos.
- Bundle Fu - Streamlines the loading of JavaScript files. Helps speed up loading and reduces additional lines of code.
- Act As State Machine - Add callback code to your models when they change state. Read more.
- State Machine - “Adds support for creating state machines for attributes on any Ruby class.”
- Sentry - A wrapper for OpenSSL encryption classes.
- Dynamically Tags - Tags words in a sentence, dynamically.
- Awesome Fields - Allows one to build forms in a much more streamlined fashion using DRY principals.
- Subdomain Fu - A tool set for adding and dealing with subdomains.
- Mobile Fu - Adds mobile device support.
- Google Charts on Rails - A simple plugin with very basic support of the Google Chart API. It’ll get you started quickly but you’ll soon hit limitations.
- Flotomatic - A handy wrapper to the Flot chart and graph library.
- Google Gears - Install this plug-in to make use of Google Gears with Rails.
- ActivePresenter - A clever way in which to wrap and manipulate multiple models into a single form.
- has_markup - A plugin to ease the display of HTML markup.
- openStream - Adds e-commerce to your site.
- Spree - Add e-commerce to your site but still requires a bit of work to get working. Worth checking out.
- Localized Dates - “The localized_dates plugin takes away some of the pain of localizing dates and times. It leverages the power of the Rails i18n plugin to facilitate localization of dates and times.”
- Kaminari - Pagination for your views using the new Rails 3 API.
- will_paginate - Adds pagination to your views.
- bootstrap-will_paginate - Upgrades the Will Paginate gem to support the Twitter Bootstrap project.
- Endless Page - Uses AJAX requests to create an endless page as you scroll down. A nice alternative to using pagination.
- Query Reviewer - A sort of profiling/debugging tool for your MySQL queries. It generates reports that can be reviewed. It also supports AJAX.
- System Settings - Adds storing and retrieval of configuration settings for your web application in a convenient manner.
- New Relic - A Rails plugin that monitors application performance a diagrams where areas could be improved. It is free to use for development but then there is a cost involved to use in production.
- Augmentations - Adds the ability to define common code for your models in once place and then easily apply this common functionality to the models that need it.
- Country Select Plugin - Once part of Rails core, it is now a separate plugin due to its offending nature to certain countries.
- Workling - Provides a simple API for running code in the background (outside of your request).
- Delayed Job - A scheduler for background tasks/jobs. Is not a daemon thread.
- Job Fu - “Simple Asynchronous Processing solution that uses the database as queue.”
- BackgroundJob - Another solution for background tasks.
- Background Fu - Another background scheduler that claims to be easy to use.
- Redis - A remote dictionary server (key-value store). Resources: Zero to Master in 30 Minutes and Redis Pub/Sub.
- Resque - “Resque is a Redis-backed library for creating background jobs, placing those jobs on multiple queues, and processing them later.” Some resources: Reque with Redis to Go.
- Query Reviewer - Analayze and study the number of queries you make to the database. How efficient are you? Find out with this plug-in.
- Better Partials - Tired of all those render statements in your views? Maybe you have too many helper methods? Give this plug-in a try for making working this space easier.
- Exception Logger - Logs exceptions in your database and provides a admin view for reviewing the results.
- Smurf - Automatically minimizes cached JavaScript and CSS code to help improve performance.
- AssetPackager - Dynamically reduces your stylesheets to one file and your Javascripts to one file.
- Textile Toolbar - Adds a textile toolbar to your web app for people to easily write HTML markup without all the overhead and still generate clean HTML code on the backend.
- Textile Editor - Adds a Textile WSIWIG editor to your views. Works with both the Prototype and jQuery libraries.
- Geocoder - “Adds object geocoding and database-agnostic distance calculations to Ruby on Rails. It’s as simple as calling fetch_coordinates! on your objects, and then using a named scope like Venue.near(”Billings, MT”).”
- Graticule - Provides a “geocoding API for looking up address coordinates. It supports many popular APIs, including Yahoo, Google, Geocoder.ca, Geocoder.us, PostcodeAnywhere and MetaCarta.”
- Polymaps - Takes your geocoded data and draws polygons on Google Maps with it.
- QueryTrace - Helps pinpoint where your SQL queries are slowing down and killing your application.
- XSS Terminate - “Makes stripping and sanitizing HTML stupid-simple. Install and forget. And forget about forgetting to h() your output, because you won‘t need to anymore.”
- Stuffing - “A Rails plugin to read and write CouchDB documents via Activerecord.”
- enum_field - Easily add enum_fields to ActiveRecord.
- Redirect Routing - Easily redirect your routes.
- Report as Sparkline - Adds easy generation of sparklines based on model data.
- Scrap - “A Rails metal handler for analyzing your processes’ memory usage.”
- HARSH - a.k.a. Another Rails Syntax Highlighter. “It highlights code in Rails, much like Radiograph or tm_syntax_highlighting. However, it does it well, better . Oh, and it also supports Haml, as well as ERb. And it comes with rake tasks.”
- Highlight - “It’s basically a wrapper around the popular pygments.org highlighter that’s written in Python and supports an impressive number of languages.”
- D2S3 - “Rails plugin which provides a form helper to upload files directly to Amazon’s S3 using an HTTP POST.”
- Blue Ridge - Adds BDD JavaScript (using Screw.Unit and env.js). Here is some info on getting started.
- Auto Session Timeout - A plug-in for automatically timing out a session within your web application.
- Spreadsheets on Rails- “Generate xls documents by using rxls templates.”
- JavaScript Vars - Easily add JavaScript variables to your views without using js-erb views.
- JS Data Helper - “Rails helpers that dump data attributes into DOM elements.”
- Rails Indexes - “A rake task to track down missing database indexes. does not assume that all foreign keys end with the convention of _id.”
- OpenID Engine - An engine that provides a thin wrapper around the openid-ruby gem.
- Imploy - A small, lightweight, and easier deployment option for server deployments.
- QUnit for Rails - Provides a toolbar for running QUnit tests.
- Geo Mere Laal - “Zero-effort creation of Location-aware Rails application based on W3C Geolocaton API.”
- Rails on PostgreSQL - “PostgreSQL views, functions, triggers, foreign keys for rails migration.”
- RCumber - “A rails plugin that gives your customers a web interface where they can view, edit and run Cucumber tests directly on your rails project. Useful for developing Cucumber/Webrat tests. Clicking on test results takes you directly to that line in textmate.”
- Admin Data - “Browse and Manage your data using the browser.”
- Disqus - Adds quick and dirty Disqus commenting support.
- Disqussion - “Disqussion is a library for using the Disqus API.”
- Shoebox - “Helps you manage styles and scripts as first-class citizens in Rails.”
- Super Deploy - A collection of Capistrano deployment recipes.
- rubaidhstrano - Another collection of Capistrano recipes.
- Cached Externals - Allows you to check in external dependencies to version control since they are not likely to change often while allowing a local symbolic link to those external dependencies.
- YUI Compressor Fu - “Minifies your javascripts and stylesheets using YUI Compressor.
- irwi - Adds Wiki support to Rails.
- SWF Fu - “Treat your Adobe Flash swf files like any other asset (images, javascripts, etc…) and embed them using SWFObject 2.2.”
- Sitemap Generator - “Enables ‘enterprise-class’ Google Sitemaps to be easily generated for a Rails site as a rake task, using a simple ‘Rails Routes’-like DSL.”
- Input CSS - “Provides a default CSS class on all INPUT fields based on the type attribute - perfect for designers.”
- 2dc_jqgrid - “This Rails plugin allows you to add jQuery datagrids into your applications.”
- Visualize Models - Renders a complete model diagram of your database with full model attributes, etc. A good compliment to Railroad (if you are not already using it).
Engines
- A Guide To Starting Your Own Rails Engine
- Writing Rails Engines - Getting Started
- Writing an Engine - Part 2
- Mountable Engines
- How to upgrade gems to Rails 3.0
- Rails 3 Engine Demo
- Dynamic Engine Routes
- A Contact Form - Rails Engines, The Enginex Gem, and The MailForm Gem
- Adding filter_parameters in an Engine
- Testing your Rails 3 Engine
- How to write a Rails 3.1 engine controller test in RSpec
Templates
- Rails Setup - Quickly generate a new Ruby on Rails application with more than the default settings. There is a lot of goodies included in this template so follow the link and check out feature set to learn more.
- Big Old Rails Template - A whole lot of setup in a single template. It’s big but worth a look.
- Twitter - Construct a Twitter application within seconds.
Themes
- Web App Theme - A good foundation from which to launch theme support within your application.
Best Practices
- Gem Packaging Best Practices
- Ruby Best Practices - A site dedicated to sharing best practices. Definitely worth subscribing to.
- Rails Best Practices - A good slide show of best practices for Rails showing before (bad) and after (good) code examples.
- Rails Maturity Model - Some best practices by top companies on distributed version control, collective code ownership, perpetual learning, scripted deployments, etc.
- 20 Rails Development No-No’s
- Rails Worst Practices: 13 Coding Nightmares You Should Avoid
- Enforcing Ruby code quality.
- Common markup & style mistakes.
- RSpec Best Practices - One guy’s list of best practices.
- My top 7 RSpec best practices
- (My) RSpec best practices and tips
Metaprogramming
- It’s all about self
- Ruby’s Metaprogramming Toolbox
- A Complete Ruby Class Diagram - Shows the relationships between classes and objects as well as singletons.
- Seeing Metaclasses Clearly - A article on understanding metaclasses, how to understand them, and how to manipulate them.
- Using method_missing and respond_to? to create dynamic methods
Security
- SSL and Rails - Learn more about how SSL is handled within Rails.
- Cross Site Reference Forgery - An article that explains how this can happen and what you need to know about it.
- Roles Testing For Security - A good read on how to handle role security in your controllers and views.
- Securing A Website With Client SSL Certificates
Performance/Benchmarks
- 5 Client-Side Performance Observations
- Can Rails Scale? Absolutely! - A good read for those not entirely convinced that Rails can’t hold its weight.
- Rails Search Benchmarks - Compares Sphynx, Ferret, and Solr search performance.
- A Thinking Man’s Sphinx - Compares UltraSphinx and ThinkingSphinx.
- Mulling Over Our Ruby On Rails Full Text Search Options.
- 4 Simple Steps to Detect & Fix Slow Rails Requests.
- Benchmarking Rails Test - Some notes on how to test the performance of your test cases.
Web Frameworks
- Thin - A Ruby web server that combines the power of Mongrel, Event Machine, and Rack.
- Ebb - A small and fast web server for dynamical languages with minimal features.
- Lighttpd - A web server that aims to be fast, high performance, and excellent and managing CPU load.
- Mack - “Is a Ruby web application framework that is being built from the ground up to aid in the development of distributed, portal-like applications that have a need for speed. Mack supports best of breed technologies in a modular way.”
- Unicorn - A HTTP server or Rack applications with Unix-like commands. Here are a few reasons why to like it.
Web Hosts
The following is a list of web hosting providers of Ruby on Rails applications. The list is asssembled in no particular order:
Here are other options.
Job Leads
- Stack Overflow Careers
- Web3Jobs
- mirRoR
- Ruby Job Motel
- Ruby Jobs Now
- Ruby Inside Jobs
- 37 Signals Jobs
Additional Resources
- giiternal - A handy took for managning source code dependencies.
- Run Code Run - A continuous integration server in the cloud.
- Cruise Control - A continuous integration build system on Ruby on Rails for Ruby on Rails. Very simple to download and get up and running.
- Signal - “An integration server written in Rails and integrated with metric_fu, rspec and cucumber, easy to install and easy to use.”
- Cinabox - A Continuous Integration build system for Ruby. Designed to run on a Ubuntu distro.
- Camping
- RubyWorks - A pre-assembled web server production stack for Ruby.
- Rails Kits - A collection of plugins and resources assembled in easy to use kits that can help jumpstart your web development. Each kit comes with a single site or development license. Prices range from $200 and up.
- MacRuby - A version of Ruby that is built on top of Objective-C for the MacOS. Provides more stability and better performance than the default Ruby distribution.
- Rubinius - A Ruby virtual machine written in C that is loosely based on the Smalltalk-80 architecture.
- Passenger - a.k.a. mod_rails. Makes deploying Rails application on an Apache server easier.
- Merbunity - A web site and community of news and resources built around Merb.
- DBSlayer - “A lightweight database abstraction layer suitable for high-load websites where you need the scalable advantages of connection pooling. Written in C for speed, DBSlayer talks to clients via JSON over HTTP”.
- Thor - An alternative to the rake and sake scripting frameworks.
- Splunk - Helps manage the various log files associated with a web application. Check out the web site demos as well as usage on Amazon EC2.
- SWFUpload - A lightweight JavaScript/Flash plugin for uploading a file or multiple files to a web server. Seventytwo has an article on how to make this plugin work with Rails.
- Hoptoad - A free service that will capture and aggregate exceptions in your web application to reduce e-mail maintenance spam. Can also be used as a syndicated feed amongst other capabilities.
- BaseApp - A default Ruby on Rails application that comes with navigation tabs, user authentication and roles, and user administration UI to help jump start your next application development work.
- Bort - Another Ruby on Rails application like BaseApp to get you off the ground and running quickly.
- Beanstalkd A fast work queue service. Check out the Devver basic and intermediate posts for getting started.
- Puppet - A resource for automating system administration tasks.
- Enki - A base application framework for blogging. Supposedly better than Mephisto or SimpleLog.
- iPhone on Rails - A framework that aids in interacting with Ruby on Rails applicaitons.
- Shoes/Raisins - A graphical toolkit for building colorful apps.
- Ruby Graphviz - Library support for Graphviz. Learn more about automating data visualization with Ruby and Graphviz.
- Pound - “A reverse proxy, load balancer and HTTPS front-end for Web server(s). Pound was developed to enable distributing the load among several Web-servers and to allow for a convenient SSL wrapper for those Web servers that do not offer it natively.”
- Spike - A Ruby on Rails log viewer and analysis tool for the MacOS.
- Masochism - “ActiveRecord connection proxy for master/slave connections”.
- Redmine - A project management application built on top of Ruby on Rails.
- Babylon - “A XMPP Component Framework based on EventMachine. It uses the Nokogiri GEM, which is a Ruby wrapper for Libxml2. It implements the MVC paradigm.”
- EcomPages - A Ruby on Rails shopping cart application.
- BrowserCMS - A “Humane Content Management for Rails”. Learn more.
- Date Performance - Improves date and time performance by using C libraries instead of the native Ruby ones.
- Kete - Open source, collaboration software.
- Pushmaster - “A helper script that makes it trivial to listen to Github Post-Receive hooks.”
- Ocra - A one-click installer generator for Windows.
- Scout - A Ruby on Rails monitoring service.
- Gitorious - Open source code to a Rails application that allows you to serve up source code much like GitHub. You can learn more here.
- Homebrew - “A package management system for OS X. In other words it is a tool that helps you manage the installation of other open source software on your Mac.”
- RJCrop - “A sample application that shows how to implement image cropping using the popular Paperclip Rails plugin and the Jcrop jQuery plugin for selecting the cropping area.”
- Git Deploy - “A shell script to easily push a local git repository to an ssh home and set it up so you can just “git push” and “git pull”.”
- DevIL - “Developer’s Image Library (DevIL) is a programmer’s library to develop applications with very powerful image loading capabilities, yet is easy for a developer to learn and use. Ultimate control of images is left to the developer, so unnecessary conversions, etc. are not performed. DevIL utilizes a simple, yet powerful, syntax. DevIL can load, save, convert, manipulate, filter and display a wide variety of image formats.”
- BucketWise - “A web-based personal finance manager with a focus on non-OCD budgeting and avoiding credit card debt.”
- JS Test Driver - “Easily integrates with continuous builds systems and allows running tests on multiple browsers quickly to ease TDD style development.”
- Ruby Gmail - “A Rubyesque interface to Gmail. Connect to Gmail via IMAP and manipulate emails and labels. Send email with your Gmail account via SMTP. Includes full support for parsing and generating MIME messages.”
- Caliper - Cloud hosted metrics for your code.
- RAFL - The Ruby Audio File Library. A Ruby library for building WAV files.
- Mac Ruby - “It is a version of Ruby 1.9, ported to run directly on top of Mac OS X core technologies such as the Objective-C common runtime and garbage collector, the CoreFoundation framework and the LLVM compiler infrastructure.”
- Sentient User - For those times when you need access to the current user via your models.
Sub-Pages
Search
Categories
- Adventures
(145)
- Announcements
(39)
- Business
(20)
- Electronics
(22)
- Employment
(1)
- Epicurean
(10)
- Games
(2)
- Literature
(1)
- Mechanical
(4)
- Meetups
(15)
- Movies
(2)
- Music
(26)
- Photography
(1)
- Services
(26)
- Software
(134)