I came across 'bundler/inline' in Bundler pull request 3440, which I'd found from Rails pull request 20429. This now has a little snippet on the What's new page of the Bundler site.
This little example demonstrates how I might use it to create a single file using minitest.
I've just noticed that this script was working for me because I already had minitest installed as a system gem. If I uninstall the gem then the script fails because it can't find minitest. The source code documents an option to install gems if they don't exist (
gemfile(true) do) but that doesn't seem to work for me. I see the following error:
Fetching gem metadata from https://rubygems.org/...
Fetching version metadata from https://rubygems.org/..
Using metaclass 0.0.4
ArgumentError: different prefix: "" and "/Users/chrisroos/tmp/wem/.bundle/bin"
Bundler::InstallError: An error occurred while installing metaclass (0.0.4), and Bundler cannot continue. Make sure that `gem install metaclass -v '0.0.4'` succeeds before bundling.
I've now realised that the
install option doesn't work because my bundler config is set to install gems to ./.bundle. If I ignore my bundler config then the gem is installed as expected:
BUNDLE_IGNORE_CONFIG=true ruby example-test-using-bundler-inline.rb