3 ms·
rubygems just needs to start "playing" with bundler. When a gem has an executable in it rubygems creates a stub capable of running actual code from any gem ver
by Vitaly 15y ago
rubygems just needs to start "playing" with bundler.
When a gem has an executable in it rubygems creates a stub capable of running actual code from any gem version by using magic parameter:
foo 1.2.3 bar baz
will run foo from gem version 1.2.3
just 'foo' will run the latest version.
now….
this stub should check for Gemfile presence and initialize bundler.
thats it. it all should work now. 'foo' will run the version specified in the Gemfile.
- dchelimsky 15y agoYou can already say "foo _1.2.3_ bar". That said, I see little benefit in making rubygems bundler-aware, and I think it would constrain both projects in undesirable ways. For example, you propose rubygems checking for a Gemfile, but that is only a convention. Bundler supports an env var to identify the location of a gemfile. So right away, rubygems would need to support both of these techniques. When bundler adds new and better ways to do this, rubygems would have to be updated to keep up. Or, perhaps, it wouldn't, in which case the projects would fall out of sync. Bundler already offers us simple ways to do this. See http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/ http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-... (including the comments) for more information.
- Vitaly 15y ago> You can already say "foo _1.2.3_ bar". I know. just as I wrote. What I'm saying is that absent this specific version gem executable should check for bundler before blindly choosing the latest. the check for bundler presence can be easily "outsourced" to bundler. for example "bundle check" will only succeed if it finds bundle installation. actually, bundler and rubygems should probably just merge.