Module: IRB::Driver

Defined in:
lib/irb/driver.rb,
lib/irb/driver/tty.rb,
lib/irb/driver/socket.rb,
lib/irb/driver/readline.rb

Defined Under Namespace

Classes: OutputRedirector, Readline, Socket, TTY

Class Method Summary collapse

Class Method Details

.currentObject



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/irb/driver.rb', line 9

def current
  current_thread = Thread.current
  current_thread[:irb_driver] ||= begin
    if group = current_thread.group
      driver = nil
      group.list.each do |thread|
        break if driver = thread[:irb_driver]
      end
      driver
    end
  end
end

.current=(driver) ⇒ Object



4
5
6
7
# File 'lib/irb/driver.rb', line 4

def current=(driver)
  ThreadGroup.new.add(Thread.current)
  Thread.current[:irb_driver] = driver
end

.redirect_output!(redirector = OutputRedirector.new) ⇒ Object



22
23
24
25
26
27
# File 'lib/irb/driver.rb', line 22

def redirect_output!(redirector = OutputRedirector.new)
  before, $stdout = $stdout, redirector unless $stdout.is_a?(redirector.class)
  yield
ensure
  $stdout = before if before
end