Top Level Namespace
- Includes:
- Rake::DSL
Defined Under Namespace
Modules: Bundler, Gem Classes: IO, ParallelInstaller
Instance Method Summary collapse
-
#gemfile(install = false, &gemfile) ⇒ Object
Allows for declaring a Gemfile inline in a ruby script, optionally installing any gems that aren’t already installed on the user’s system.
Instance Method Details
#gemfile(install = false, &gemfile) ⇒ Object
Note:
Every gem that is specified in this ‘Gemfile’ will be ‘require`d, as if the user had manually called `Bundler.require`. To avoid a requested gem being automatically required, add the `:require => false` option to the `gem` dependency declaration.
Allows for declaring a Gemfile inline in a ruby script, optionally installing any gems that aren’t already installed on the user’s system.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/bundler/inline.rb', line 30 def gemfile(install = false, &gemfile) require 'bundler' old_root = Bundler.method(:root) def Bundler.root Pathname.pwd. end ENV['BUNDLE_GEMFILE'] ||= 'Gemfile' builder = Bundler::Dsl.new builder.instance_eval(&gemfile) definition = builder.to_definition(nil, true) def definition.lock(*); end definition.validate_ruby! if install Bundler.ui = Bundler::UI::Shell.new Bundler::Installer.install(Bundler.root, definition, :system => true) Bundler::Installer..each do |name, | Bundler.ui.info "Post-install message from #{name}:\n#{}" end end runtime = Bundler::Runtime.new(nil, definition) runtime.setup.require bundler_module = class << Bundler; self; end bundler_module.send(:define_method, :root, old_root) end |