Module: Volt::Bundle

Included in:
CLI
Defined in:
lib/volt/cli/bundle.rb

Instance Method Summary collapse

Instance Method Details

#bundle_command(command) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/volt/cli/bundle.rb', line 5

def bundle_command(command)
  say_status :run, "bundle #{command}"

  # We are going to shell out rather than invoking Bundler::CLI.new(command)
  # because `volt new` loads the Thor gem and on the other hand bundler uses
  # its own vendored Thor, which could be a different version. Running both
  # things in the same process is a recipe for a night with paracetamol.
  #
  # We unset temporary bundler variables to load proper bundler and Gemfile.
  #
  # Thanks to James Tucker for the Gem tricks involved in this call.
  _bundle_command = Gem.bin_path('bundler', 'bundle')

  require 'bundler'
  Bundler.with_clean_env do
    full_command = %Q["#{Gem.ruby}" "#{_bundle_command}" #{command}]
    if options[:quiet]
      system(full_command, out: File::NULL)
    else
      system(full_command)
    end
  end
end