module Reline

def self.update_iogate

def self.update_iogate
  return if core.config.test_mode
  # Need to change IOGate when `$stdout.tty?` change from false to true by `$stdout.reopen`
  # Example: rails/spring boot the application in non-tty, then run console in tty.
  if ENV['TERM'] != 'dumb' && core.io_gate == Reline::GeneralIO && $stdout.tty?
    require 'reline/ansi'
    remove_const(:IOGate)
    const_set(:IOGate, Reline::ANSI)
  end
end