mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
8598f8c2dc
rubygems 2.7.x depends bundler-1.15.x. This is preparation for rubygems and bundler migration. * lib/bundler.rb, lib/bundler/*: files of bundler-1.15.4 * spec/bundler/*: rspec examples of bundler-1.15.4. I applied patches. * https://github.com/bundler/bundler/pull/6007 * Exclude not working examples on ruby repository. * Fake ruby interpriter instead of installed ruby. * Makefile.in: Added test task named `test-bundler`. This task is only working macOS/linux yet. I'm going to support Windows environment later. * tool/sync_default_gems.rb: Added sync task for bundler. [Feature #12733][ruby-core:77172] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
42 lines
1 KiB
Ruby
42 lines
1 KiB
Ruby
# frozen_string_literal: true
|
|
module Bundler
|
|
class CLI::Console
|
|
attr_reader :options, :group
|
|
def initialize(options, group)
|
|
@options = options
|
|
@group = group
|
|
end
|
|
|
|
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
|
|
|
|
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)
|
|
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
|
|
end
|
|
end
|