cbdr/ruby-cb-api — pull request #29 by tkling (2013-12-09 14:26:29+00:00)
Title: Big 'ol bunch of refactors

A number of different things happened on this branch:

1) API responses got a facelift - new set of supporting classes, main `ApiResponse` class from which to inherit
2) Reimplementation of spot response using new stuffs
3) rspec-pride was added as the default formatter spec run formatter :rainbow:
4) removed a couple dependencies from the Gemfile to gemspec
5) Got rid of all of the names and email address in the Gemfile
6) Bumped .ruby-version hint file to latest ruby 1.9.3 for update against [CVE-2013-4164](https://www.ruby-lang.org/en/news/2013/11/22/heap-overflow-in-floating-point-parsing-cve-2013-4164/)
7) Tests for all the things - coverage is now just barely over 89%

NOTE: these changes are NOT coming with a version bump. The public API for the spot client has changed, returning a full response object now instead of an array of models with l33t metaprogramming methods tacked on. The currently deployed gem version will keep [rockin' steady](http://media-cache-ak0.pinimg.com/736x/bd/ca/86/bdca8631b05c42ab9c5152fc830c2058.jpg), if this PR is accepted I plan on changing the rest of the clients to a similar interface (returning an `ApiResponse`) and then bumping to major version 2.0.0 to reflect the change in public interface.

Verification steps:
Since there are a lot of commits here as well as a number of different things going on, here's how it might be easiest:
- The main meat of the logical refactoring is the stuff around API responses/metadata. In lib/cb/responses, take a look at api_response.rb, metadata.rb, errors.rb, and timing.rb. These are the classes that make up the new API response design.
- I went ahead and reimplemented the spot API retrieve response, check that out and see how the new design feels/smells.
- Are we cool with rspec-pride formatting our spec output?
- Are the changes to the gemspec ok? (teams instead of names, ConsumerDevelopmentQuestions@cb is the contact email now)

:bear::rocket: