* lib/irb.rb (IRB::Irb#run): split from IRB.start.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-11-06 02:49:49 +00:00
Родитель d903681a13
Коммит 5e214d40d5
2 изменённых файлов: 23 добавлений и 15 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Sun Nov 6 11:49:47 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/irb.rb (IRB::Irb#run): split from IRB.start.
Sun Nov 6 11:45:11 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> Sun Nov 6 11:45:11 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/e2mmap.rb (E2MM.def_exception): remove old definition if * lib/e2mmap.rb (E2MM.def_exception): remove old definition if

Просмотреть файл

@ -382,21 +382,7 @@ module IRB
else else
irb = Irb.new irb = Irb.new
end end
irb.run(@CONF)
@CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC]
@CONF[:MAIN_CONTEXT] = irb.context
trap("SIGINT") do
irb.signal_handle
end
begin
catch(:IRB_EXIT) do
irb.eval_input
end
ensure
irb_at_exit
end
end end
# Calls each event hook of IRB.conf[:AT_EXIT] when the current session quits. # Calls each event hook of IRB.conf[:AT_EXIT] when the current session quits.
@ -430,6 +416,24 @@ module IRB
@scanner = RubyLex.new @scanner = RubyLex.new
@scanner.exception_on_syntax_error = false @scanner.exception_on_syntax_error = false
end end
def run(conf = IRB.conf)
conf[:IRB_RC].call(context) if conf[:IRB_RC]
conf[:MAIN_CONTEXT] = context
trap("SIGINT") do
signal_handle
end
begin
catch(:IRB_EXIT) do
eval_input
end
ensure
conf[:AT_EXIT].each{|hook| hook.call}
end
end
# Returns the current context of this irb session # Returns the current context of this irb session
attr_reader :context attr_reader :context
# The lexer used by this irb session # The lexer used by this irb session