bundle-outdated

When RubyTracker was first made available to the public, I was thrilled. I'm a definitive software update nut and with the increasing availability of awesome gems and plugins for your Rails projects, what greater good is there than a service that will detect the current versions you're using (via bundler's Gemfile) and simply give you a list of outdated gems.

The idea was great, but the creators of the service apparently quickly lost interest. I had complained back in February that its queues were stuck. And while they ran their syncing process briefly in the meantime, it is now again stuck in limbo and new pushes to my GitHub repositories or even a manual sync won't update the contents of their database anymore.

Given my experience being that guy it was only a matter of time until the itch to stay on top of my Gem versioning desperately needed a little scratching, which was more or less yesterday.

I started working on a little utility to parse the Gemfile and Gemfile.lock combination of your Ruby project (mostly using APIs provided by both Bundler and RubyGems itself) and applying a dash of logic to print out a list of versions that are available, which you're currently missing out on, either due to a lack of running bundle update every now and then or simply by explicitly locking down your Gem versions by specifying a major.minor.build version number in your Gemfile, as advocated by Ruby experts such as Gary Bernhard for your applications.

The first result of my muttering about on this task is now available, who would've guessed, as a Gem for you to play with (and send me nasty email about).

Simply install with:

gem install bundle_outdated

And then generate a report from your top-level Ruby project folder (containing Gemfile and Gemfile.lock:

$ bundle-outdated

Please check out the README for an example report.

I'm sure there will be kinks to work out (and error checking to improve, hence the 0.0.1 version number), but I'm putting it out there to find the corner cases that my apps may simply not have. The code is out there for you to check out and improve upon. It has pretty decent test-coverage and should generally be simply enough to understand. Feel free to send me pull requests through the gem's GitHub project or submit a new issue.