jasonrudolph/stratify — pull request #4 by jasonrudolph (2013-06-15 16:42:00+00:00)
Title: [wip] Move collectors into Rails app

Originally, splitting out each of the collectors into separate gems seemed like a good idea. In practice, the disadvantages of this approach tend to outweigh any advantages.

"Practicality beats purity." So, let's move the collectors into the Rails app.

---

For each collector, all code (and assets) will reside inside the Rails app at `lib/stratify/`. All test code will reside at `spec/lib/stratify/`.

Some benefits of this change:

- Code reloading during development. When you're developing a new collector (or changing an existing one), you don't have to restart the Rails app after each change.
- Increased approachability for new developers that might want to contribute collectors.
- They won't need to publish a gem.
- They won't need to figure out how to test the new gem in the Rails app during development.
- They just add a directory for the new collector (at `lib/stratify/`), and get to work. They can easily see other collectors as examples. Once the core classes are implemented, the collector is automatically included in the Rails app.
- Elimination of boilerplate code (and rubygems configuration) shared by each collector gem.
- Easier resolution of dependency conflicts. The Rails app's Gemfile manages all dependencies. When you add/update a gem dependency for one collector, you immediately know whether that version is compatible with the other collectors.

---

TODO:

- [x] stratify-twitter
- [ ] stratify-foursquare
- [ ] stratify-garmin
- [ ] stratify-github
- [ ] stratify-gowalla
- [ ] stratify-instapaper
- [ ] stratify-itunes
- [ ] stratify-rhapsody
- [ ] stratify-base