leejones/trash — pull request #1 by ericmathison (2013-09-07 23:05:14+00:00)
Title: Specifying Development Dependency Versions

So, right off the bat, I'd just like to say that since this pull request edits the Rakefile (which you explicitly said not to do), I don't expect you to accept it. I'm using it as a starting point for a discussion about how you think I should get the tests for this project to run.

Coming fresh to just about any Ruby project, I would expect to be able to run `bundle && bundle exec rake` and for that to run the tests with the appropriate gem versions. So, in order to do that, would it be okay to add a Gemfile to your project which references the gemspec? I believe that would require the gemspec to have all of the development dependencies listed.

This comes more to the point. Since you are using Jeweler for you project, adding development dependencies to the gemspec looks like it involves adding them in the Rakefile then running `rake gemspec` to generate the gemspec. But you say you don't want the Rakefile to be edited. So I'm curious to know how you think this should be approached.

By the way, in some cases I had to make an educated guess (based on when you last committed and other implicit hints) about the gem versions you probably used. Looks like you were probably using Jeweler version 1.4.0 which relies on the deprecated Gem::Dependency#version_requirements RubyGems method which was removed some time after RubyGems version 1.3.7. Therefore, this pull request depends on having an early version of RubyGems. Please correct me if you have a better idea, but I think it's best to start by getting things to work using all of the original versions and then incrementally update from there. For me, the simplest way to use an early version of RubyGems was to run the tests using Ruby 1.8.7 since for some reason I had a hard time getting an older RubyGems version to run on ruby 1.9 or 2.0.

P.S.
This is an awesome project. I was actually sitting down to write a gem to do the same thing when I came across yours. Now I don't have to!