Extending Gems - Patterns and Anti-Patterns of Pluggable Gems

Accepted Session
Short Form
Scheduled: Thursday, June 26, 2014 from 11:00 – 11:45am in B304


The Ruby community has a strong tradition of building extensions to popular gems. But simple mistakes can make gems harder to extend than they need to be. Drawing from real-world examples, we'll examine the patterns of coding, configuration and documentation for maximizing your gem's flexibility.


One strength of the Ruby community is the simplicity of sharing code via gems. When a gem is popular enough, it can even develop an ecosystem of additional gems that build on it.

But extending a gem that wasn’t built with that flexibility in mind isn’t always easy. This talk highlights tips and techniques for making your gem simpler to plug into, and avoid mistakes that will have other devs cursing under their breath.

Based on experience working on New Relic’s Ruby agent (aka the newrelic_rpm gem), we’ll cover the highs and lows of interacting with others gems, from configuration to documentation and everywhere in between.


Ruby, gems, extensibility

Speaking experience

This talk was given previously at RubyConf 2013 and ConFoo 2014.

I've spoken at several Ruby conferences over the past year including Mt. West Ruby, RubyConf, CodeMash and Ruby on Ales.

Slides from prior talks are available at https://speakerdeck.com/jasonrclark
Videos at http://confreaks.com/presenters/1621-jason-clark