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.
- Automatically uses
custom_shebangwhen not specified by user in
- Automatically installs wrapper when not available during
gem install ...or
custom_shebangfrom rubygems 2.0(master) to any rubygems down to 1.3.7.
- Adds the command
gem regenerate_binstubswhich allows regeneration of binstubs for existing gems. It does not, however, regenerate extensions.
- Adds an uninstaller
rubygems-bundler-uninstallerwhich 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.