class Bundler::CLI::Console

def get_console(name)

def get_console(name)
  require name
  get_constant(name)
rescue LoadError
  Bundler.ui.error "Couldn't load console #{name}, falling back to irb"
  require "irb"
  get_constant("irb")
end

def get_constant(name)

def get_constant(name)
  const_name = {
    "pry"  => :Pry,
    "ripl" => :Ripl,
    "irb"  => :IRB,
  }[name]
  Object.const_get(const_name)
rescue NameError
  Bundler.ui.error "Could not find constant #{const_name}"
  exit 1
end

def initialize(options, group)

def initialize(options, group)
  @options = options
  @group = group
end

def run

def run
  Bundler::SharedHelpers.major_deprecation "bundle console will be replaced " \
                       "by `bin/console` generated by `bundle gem <name>`"
  group ? Bundler.require(:default, *(group.split.map!(&:to_sym))) : Bundler.require
  ARGV.clear
  console = get_console(Bundler.settings[:console] || "irb")
  console.start
end