Added force_require for binding.irb
When we make irb to bundled gems, binding.irb with bundle exec is not working without irb declaration of Gemfile. This force_require makes to load irb without Gemfile.
This commit is contained in:
parent
e43d701f09
commit
69d0e690bb
Notes:
git
2024-09-06 05:45:37 +00:00
18
prelude.rb
18
prelude.rb
@ -1,12 +1,30 @@
|
|||||||
class Binding
|
class Binding
|
||||||
# :nodoc:
|
# :nodoc:
|
||||||
def irb
|
def irb
|
||||||
|
begin
|
||||||
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)
|
||||||
|
gemspecs = (Gem::Specification.dirs + [Gem.default_specifications_dir]).map{|d|
|
||||||
|
Dir.glob("#{d}/#{gem}*.gemspec").reverse
|
||||||
|
}.flatten
|
||||||
|
if gemspecs.empty?
|
||||||
|
false
|
||||||
|
else
|
||||||
|
gemspec = Gem::Specification.load(gemspecs[0])
|
||||||
|
gemspec.dependencies.each{|dep| force_require dep.name }
|
||||||
|
gemspec.activate
|
||||||
|
require gem.gsub("-", "/")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
module Kernel
|
module Kernel
|
||||||
|
Loading…
x
Reference in New Issue
Block a user