Extending Gems - Patterns and Anti-Patterns of Pluggable Gems*
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
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
I fell in love with programming as a young boy watching my dad work in Clipper and dBase III (no, really). The obsession sparked there continues to this day. My current language crushes are Ruby and Haskell, and I work for New Relic on the Ruby Agent. When not at work, I enjoy experimenting with programming languages, cycling, homebrewing, and hanging out with my family.
- Title: Extending Gems - Patterns and Anti-Patterns of Pluggable Gems
- Track: Chemistry
- Room: B304
- Time: 11:00 – 11:45am
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.
- Speakers: Jason Clark