rubygems-bundler integration gem reaches 1.0.0

No more “bundle exec …”

I want to present the testing release of my gem rubygems-bundler 1.0.0 – integration for rubygems and bundler. Recently I was motivated to get back to it, actually I got back to it twice.

The first time thanks to Joshua Hull and his great effort on noexec gem, this gem was merged in to rubygems-bundler in version 0.9.0 – this was a great improvement, providing automatic detection if the gem should be loaded using Bundler.setup or not.

The second time was thanks to discussions with Evan Phoenix and Yehuda Katz. Evan motivated me to remove the installation of the wrapper via extensions, which was a hack. Yehuda gave me good ideas on handling the wrapper and automating things, so modification of ~/.gemrc is not needed anymore.

So, rubygems-bundler is now at version 1.0.0.beta5, and should be available, officially, as 1.0.0 very shortly.

Features

Automatically uses custom_shebang when not specified by user in ~/.gemrc.

Automatically installs wrapper when not available during gem install ... or gem regenerate_binstubs

Backports custom_shebang from rubygems 2.0(master) to any rubygems down to 1.3.7.

Adds the command gem regenerate_binstubs which allows regeneration of binstubs for existing gems. It does not, however, regenerate extensions.

Adds an uninstaller rubygems-bundler-uninstaller which will restore binstubs for gems to use the safer #!/usr/bin/env ruby, and remove the existing wrapper.

Installation / Testing

gem install rubygems-bundler --pre

You might get warnings to uninstall, this is needed to prevent collisions with the rubygems plugin in older versions.

What’s the future of this gem?

Yehuda and I discussed it, and we have agreed to merge it into bundler, as it’s the most user friendly solution that could be done. We will be working hard to integrate it into bundler 1.3 (1.2 is in testing now).

Some parts of this gem will be made obsolete with the release of rubygems 2.0: custom_shebang – already implemented and gem regenerate_binstubs – will be part of gem pristine (#326).

Unfortunately it is to late to merge custom shebang back to rubygems 1.8 (#325).

My dream is that we will no longer have to create third-party tools (like my gem) and the integration will be fully done between rubygems 2.0 and bundler 1.3.

But, even then, you can still use my gem if you require lower versions of rubygems or bundler.