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 Tutorials - A rather extensive list of tutorials to help get you started with the Ruby on Rails web framework.
Tips and Tricks
- Ruby 1.9 - What to Expect.
- Ruby 1.9 - Changes in Ruby 1.9.
- 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.
- 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 Forms (not crazy about them).
- Rails 2.2 - 27 links and resources to get you started.
- 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.
- 19 Rails Tricks Most Rails Coders Don’t Know
- 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.
- Using the Restful Authentication “store_location” method.
- 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.
- 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
- 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.
- 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
- Proto.Menu with Rails - Learn how to add pop-up menus to your Rails views with a small JavaScript library.
- Ruby Daemon Module - A code snippet for a simple Ruby daemon.
- 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.
- Capistrano Getting Started - A good site to read more about how to get up and running on using Capistrano.
- Top 5 Uses for Capistrano - Get more out of 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.
- DSL in Ruby - Discusses how to build your first Domain Specific Language in Ruby.
- Implementing DSL Blocks - Another walk-through of building a DLS.
- Using Autotest For Rails Plugin Development - As the title implies, learn how to setup Autotest for plugin development.
- Setup RSpec, Cucumber, Webrat, RCov and Autotest on Leopard.
- 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.
- 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.
- Building a Ruby Gem (From Scratch) Using Behavior Driven Development
- 28 Phusion Passenger (mod_rails) resources.
- Phusion Passenger on Leapard.
- 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.
- Testing outbound emails with Cucumber.
- 20 articles on Cucumber and a free beverage recipe!
- 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.
- 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.
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.
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.
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.
- PeepCode - Screen cast tutorials like Railscasts but longer in length and not free (roughly $9 per episode).
- Envy Casts - Produced by the same guys that host the Rails Envy podcasts. Each screen cast tutorial will set you back about $9.
News
- Ruby Trends - See what is hot within the community.
- Ruby Toolbox - Another trending site that shows what is hot and happening within the community.
- 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.
- 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.
- 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.
- Rails Envy - 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.
Gems
Ruby Gems allow one to discover and install additional packages that do not come standard with the base Ruby distribution. NOTE: If you are having trouble installing RubyGems 1.3.0 on MacOS 10.5.4, this might help. Here are a few worth considering:
- Aeonscope Enhanced Select - An enhanced select helper for forms that allows you to use the full HTML spec for select option elements.
- Echoe - A simple and easy to use gem builder tool for creating your own Ruby Gems.
- Jeweler - Makes managing and building your Ruby Gems easier. Learn how to craft the perfect gem with Jeweler.
- 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.
- Cucumber - An add-on to RSpec that supports story testing. Learn how to get started: Part 1 and Part 2.
- 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.
- 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.
- Vlad the Deployer - Programmatic application deployment.
- Moonshine - “Rails deployment and configuration management done right. ShadowPuppet + Capistrano == crazy delicious.”
- 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.
- Merb - A MVC like Rails but faster, more abstract, and lightweight.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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. - FFMPEG-Ruby - A Ruby wrapper to the C-library for dealing with video files.
- Vimeo - A full-featured ruby interface for the Vimeo API.
- Chronic - A natural language time parser. The only problem is that it doesn’t support time zones at the moment but is planned as a future enhancement.
- Briad - A simple tool for tracking SVN and GIT repository branches.
- Suprails - Meant to replace and be the super version of the rails command you already know.
- Garlic - Lightweight continuous integration for rails using git.
- Pony - A lightweight and quick way to send e-mail with just one command.
- Alter Ego - An implementation of the Gang-of-Four’s state pattern.
- 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.
- 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.
- 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.
- Clearance - Developed by thoughbot, it adds authentication and authentication testing to your Rails app.
- 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.”
- 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.”
- is_taggable - A simple tagging solution.
- timeline_fu - Easily build timelines.
- Scruffy - A library for generating graphs and visualization of data using SVG.
- 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 app.
- 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”.
- 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.
- Aeonscope 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.
- 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.”
- Easy Navigation - Adds site navigation support to your app.
- Yard - A documentation generation tool that can export to multiple formats.
- 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.
Ruby on Rails Plugins
- 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.
- 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.”
- Custom Error Messages - Have complete customization over your ActiveRecord error messages.
- Acts as Commentable - Easily makes your models commentable.
- 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 Versioned - Adds versioning support to an ActiveRecord model. More details here.
- 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 Taggable On - Adds tagging capabilities to ActiveRecords.
- Acts as List - “Provides the capabilities for sorting and reordering a number of objects in a list. The class that has this specified needs to have a +position+ column defined as an integer on the mapped database table.”
- 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.
- Cache-Money - A read/write-through caching library for ActiveRecord.
- Message Block - An alternative to flash messages and model errors messages.
- 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.
- Haml - Adds a new and possibly more elegant way of building views for your Rails apps.
- 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. Read this article for more info. You can also have default Gravatars and can also manage multiple attachments with validations. Finally, learn how to speed up your tests by 70%.
- 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.
- 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.
- Lockdown - An authentication/authorization system that is a different take on security than Restful 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.
- 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.
- 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.
- Open Flash Chart - A rather attractive way of charting data. Learn how to port this to your Rails project.
- 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.
- 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.”
- will_paginate - Adds pagination to your views.
- 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.
- 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.
- 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.
- Validates Timeliness - “Date and time validation plugin for Rails 2.x and allows custom date/time format.”
- 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.”
- 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).
- 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.”
Here are a few more worth checking out: Top 11 Rails Plugins by Juxie TechKnow.
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.
- 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
- Ruby Best Practices - A site dedicated to sharing best practices. Definitely worth subscribing to.
- 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.
Metaprogramming
- 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.
Performance/Benchmarks
- 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.”
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
Additional Resources
- giiternal - A handy took for managning source code dependencies.
- Cruise Control - A continuous integration build system on Ruby on Rails for Ruby on Rails. Very simple to download and get up and running.
- Cinabox - A Continuous Integration build system for Ruby. Designed to run on a Ubuntu distro.
- Camping
- RIO - A useful Ruby I/O library. Check out the How To documentation as well.
- 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.
- Feather - A Merb-based blogging platform.
- 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.
- Can Has Auth? - A Merb plugin that supports user authentication much like Restful Authentication for Ruby on Rails.
- 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’s Hammer - 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.
- Sexy Forms for Merb - Much like Awesome Fields for Rails, this adds handy form helpers to your application.
- 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.
- Sifter - An easy bug tracking system.
- 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”.
- Drails - A Rails + Dojo implementation. It replaces the Prototype/Scriptaculous helpers with Dojo helpers.
- 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.
- Remarkable - Additional support to make building RSpec tests easier.
Sub-Pages
Search
Categories
- Adventures
(103)
- Announcements
(32)
- Business
(17)
- Electronics
(21)
- Employment
(1)
- Epicurean
(10)
- Games
(3)
- Literature
(1)
- Mechanical
(4)
- Meetups
(17)
- Movies
(2)
- Music
(26)
- Photography
(1)
- Services
(26)
- Software
(130)