It was a few weeks ago that I announced we'd Made a Gem to help us build an interface into CampMinder, a partner that could help InterExchange clients manage their participants after a successful match.
Today we released Application Version v1.10.0 and in turn let the CampMinder functionality into the wild. It was fantastic being able to complete such a viable tool to our colleagues and their clients. This feature has been wanted for a long time now.
I'm interested in reflecting on how we built this to how we've built other tools in the past.
The tool we're integrating into is monolithic, we don't want to tie ourselves down to it's modelling and the test dependencies. Building the tool as a gem allowed us to focus only on the interface, we then just plugged it into our Application.
It's Open Source
Like most organizations we build the majority of our software behind closed doors.
Maintenance and continued use of the gem will serve as living documentation of the interface between our two systems.
We built this system by comparing it to a CSharp implementation, using unit tests we teased out the functionality of the XML API and in turn built a Ruby API we could just drop in.
We take pride in the code we write, and we'll be actively maintaining the gem.
I only just noticed we already have work to do related to our final push efforts.