Only provide force_activate. Because it's hard to determine require name.
This commit is contained in:
parent
69d0e690bb
commit
1b4f394c52
Notes:
git
2024-09-06 05:45:37 +00:00
12
prelude.rb
12
prelude.rb
@ -1,18 +1,15 @@
|
|||||||
class Binding
|
class Binding
|
||||||
# :nodoc:
|
# :nodoc:
|
||||||
def irb
|
def irb
|
||||||
begin
|
force_activate "irb" if defined?(Bundler) && !Gem.loaded_specs["irb"]
|
||||||
require 'irb'
|
require 'irb'
|
||||||
rescue LoadError
|
|
||||||
force_require "irb" if defined?(Bundler)
|
|
||||||
end
|
|
||||||
irb
|
irb
|
||||||
end
|
end
|
||||||
|
|
||||||
# suppress redefinition warning
|
# suppress redefinition warning
|
||||||
alias irb irb # :nodoc:
|
alias irb irb # :nodoc:
|
||||||
|
|
||||||
private def force_require(gem)
|
private def force_activate(gem)
|
||||||
gemspecs = (Gem::Specification.dirs + [Gem.default_specifications_dir]).map{|d|
|
gemspecs = (Gem::Specification.dirs + [Gem.default_specifications_dir]).map{|d|
|
||||||
Dir.glob("#{d}/#{gem}*.gemspec").reverse
|
Dir.glob("#{d}/#{gem}*.gemspec").reverse
|
||||||
}.flatten
|
}.flatten
|
||||||
@ -20,9 +17,8 @@ class Binding
|
|||||||
false
|
false
|
||||||
else
|
else
|
||||||
gemspec = Gem::Specification.load(gemspecs[0])
|
gemspec = Gem::Specification.load(gemspecs[0])
|
||||||
gemspec.dependencies.each{|dep| force_require dep.name }
|
gemspec.dependencies.each{|dep| force_activate dep.name }
|
||||||
gemspec.activate
|
gemspec.activate
|
||||||
require gem.gsub("-", "/")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user