diff options
author | Nobuyoshi Nakada <[email protected]> | 2019-06-10 21:07:24 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2019-06-10 21:18:56 +0900 |
commit | 976c689ad478b8010b053aa270a28bd236b8380e (patch) | |
tree | fe9a6f494bcd87ab28dc89d0cf7cf3af352070e5 /lib/irb/cmd/help.rb | |
parent | 973fd18f11f5026024fc43e2848db030110bdaee (diff) |
irb: defer requiring rdoc to improve the start up time
Diffstat (limited to 'lib/irb/cmd/help.rb')
-rw-r--r-- | lib/irb/cmd/help.rb | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/irb/cmd/help.rb b/lib/irb/cmd/help.rb index 71590ee844..10ec13475a 100644 --- a/lib/irb/cmd/help.rb +++ b/lib/irb/cmd/help.rb @@ -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 |