mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
35 lines
560 B
Ruby
35 lines
560 B
Ruby
require "irb"
|
|
|
|
module IRB
|
|
@setup_done = false
|
|
|
|
extend Module.new {
|
|
def parse_opts; end
|
|
|
|
def start_within(binding)
|
|
unless @setup_done
|
|
setup(nil)
|
|
@setup_done = true
|
|
end
|
|
|
|
workspace = WorkSpace.new(binding)
|
|
irb = Irb.new(workspace)
|
|
|
|
@CONF[:IRB_RC]&.call(irb.context)
|
|
@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
|