bundle-new/lib/bundler/cli/console.rb

43 lines
1.0 KiB
Ruby

module Bundler
class CLI::Console
attr_reader :options, :group, :consoles
def initialize(options, group, consoles)
@options = options
@group = group
@consoles = consoles
end
def run
group ? Bundler.require(:default, *(group.split.map! {|g| g.to_sym })) : Bundler.require
ARGV.clear
preferred = Bundler.settings[:console] || 'irb'
# See if console is available
begin
require preferred || true
rescue LoadError
# Is it in Gemfile?
Bundler.ui.error "Could not load the #{preferred} console"
Bundler.ui.info "Falling back on IRB..."
require 'irb'
preferred = 'irb'
end
constant = consoles[preferred]
console = begin
Object.const_get(constant)
rescue NameError => e
Bundler.ui.error e.inspect
Bundler.ui.error "Could not load the #{constant} console"
return
end
console.start
end
end
end