• Intel
  • Microsoft
  • Google
  • Sun Microsystems
  • BT
  • IBM
  • Yahoo! Inc.
  • Zimbra
  • Atlassian Software Systems
  • Disney
  • EnterpriseDB
  • Etelos
  • Ingres
  • JasperSoft
  • Kablink
  • Linagora
  • MindTouch
  • Mozilla Corporation
  • Novell, Inc.
  • Open Invention Network
  • OpSource
  • RightScale
  • Silicon Mechanics
  • Tenth Planet
  • Ticketmaster
  • Voiceroute
  • White Oak Technologies, Inc.
  • XAware
  • ZDNet

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at scordesse@oreilly.com.

Media Partner Opportunities

Download the Media & Promotional Partner Brochure (PDF) for more information on trade opportunities with O'Reilly conferences, or contact mediapartners@oreilly.com.

Press and Media

For media-related inquiries, contact Maureen Jennings at maureen@oreilly.com.

OSCON Newsletter

To stay abreast of conference news and to receive email notification when registration opens, please sign up for the OSCON newsletter (login required).

Contact Us

View a complete list of OSCON 2008 Contacts

Extending Rails: Understanding and Building Plugins

Ruby, Tutorial
Location: D137/138 Level: Intermediate
Average rating: *****
(5.00, 1 rating)

Ruby on Rails has made web development easier than ever, but there is a hurdle that comes with that convenience. Writing web applications that fit the Rails model is simple, but the Rails code itself is complex, and changing its behavior requires an in-depth knowledge of Ruby. When you want to change the behavior of Rails, figuring out what to change can be perplexing.

In this tutorial, we will go through three major ideas surrounding Rails plugins. First, the basic idea of a plugin in Rails will be discussed, and some of the best architected (and most useful) plugins for Rails will be highlighted. We will use these plugins to demonstrate how they hook into Rails and change its behavior.

We will take a brisk walk through the architecture of Rails, making a map of the major entrance points for change. How to add new data sources will be discussed, and how to extend ActiveRecord to take advantage of specific database features will be shown, as well as how to manipulate page rendering and application flow.

Armed with this map, we will then learn how to make our own plugins. The Rails generator, and its cousin, rubigen, will be especially useful here. The easy and fun parts of building plugins – new generators and Rake tasks – will be contrasted with the harder parts, especially testing your plugin and deciding whether to keep all your code in the plugin directory, or move some via a generator into the main Rails application. We will show how plugins can be used to alter other plugins’ behavior easily, and how to create entire self-sufficient applications that can be distributed as plugins to drop into other applications.

In these three hours, the participant can expect to go from a Rails web developer to a Rails hacker and manipulator, and will learn more about Ruby in the process.

Photo of Clinton N. Dreisbach

Clinton N. Dreisbach

Relevance, Inc.

Clinton R. Nixon is a senior developer for Viget Labs and is an active open source programmer. He has created several plugins for Ruby on Rails, and designed the concept of “resourceful plugins” with Ben Scofield. He is active in self-publishing communities, and wrote Wolfe, a JRuby interface for a Java XML + CSS renderer, as part of a free publishing toolchain he is developing.

OSCON 2008