mirror of
https://github.com/ruby/ruby.git
synced 2026-10-29 00:46:26 +08:00
irb: defer requiring rdoc to improve the start up time
This commit is contained in:
2 files changed
+10
-7
No files matched your search
+8
-5
@@ -9,17 +9,18 @@
|
||||
#
|
||||
#
|
||||
|
||||
require 'rdoc/ri/driver'
|
||||
|
||||
require_relative "nop"
|
||||
|
||||
# :stopdoc:
|
||||
module IRB
|
||||
module ExtendCommand
|
||||
class Help < Nop
|
||||
begin
|
||||
Ri = RDoc::RI::Driver.new
|
||||
rescue SystemExit
|
||||
def execute(*names)
|
||||
require 'rdoc/ri/driver'
|
||||
IRB::ExtendCommand::Help.const_set(:Ri, RDoc::RI::Driver.new)
|
||||
rescue LoadError, SystemExit
|
||||
IRB::ExtendCommand::Help.remove_method(:execute)
|
||||
# raise NoMethodError in ensure
|
||||
else
|
||||
def execute(*names)
|
||||
if names.empty?
|
||||
@@ -35,6 +36,8 @@ module IRB
|
||||
end
|
||||
nil
|
||||
end
|
||||
ensure
|
||||
execute(*names)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#
|
||||
|
||||
require "readline"
|
||||
require "rdoc"
|
||||
autoload :RDoc, "rdoc"
|
||||
|
||||
module IRB
|
||||
module InputCompletor # :nodoc:
|
||||
@@ -267,8 +267,8 @@ module IRB
|
||||
end
|
||||
end
|
||||
|
||||
RDocRIDriver = RDoc::RI::Driver.new
|
||||
PerfectMatchedProc = ->(matched) {
|
||||
RDocRIDriver ||= RDoc::RI::Driver.new
|
||||
if matched =~ /\A(?:::)?RubyVM/ and not ENV['RUBY_YES_I_AM_NOT_A_NORMAL_USER']
|
||||
File.open(File.join(__dir__, 'ruby_logo.aa')) do |f|
|
||||
RDocRIDriver.page do |io|
|
||||
|
||||
Reference in new issue
Block a user