module Readline

Public Class Methods

prompt(message, exit_on_exit: true) click to toggle source
# File lib/vv/readline_methods.rb, line 20
def prompt message, exit_on_exit: true
  message.is_a! String
  message.concat " "

  input = Readline.safe_readline message

  if input.nil?
    puts
    exit
  end

  input.chomp!

  exit if input == "exit" and exit_on_exit

  input
end
prompt_yn(message, default: nil) click to toggle source
# File lib/vv/readline_methods.rb, line 39
def prompt_yn(message, default: nil)
  default = true  if default == "y" or default == "Y"
  default = false if default == "n" or default == "N"

  option = case default
           when nil
             "[y/n]"
           when false
             "[y/N]"
           when true
             "[Y/n]"
           end

  option.prepend " "
  message += option

  answer = nil

  loop do
    input = prompt(message)

    answer = default if input == ""
    answer = true  if input == "y" or input == "Y"
    answer = false if input == "n" or input == "N"

    break unless answer.nil?

    puts "Unrecognized input. Please enter response again."
  end

  answer
end
safe_readline(prompt) click to toggle source
# File lib/vv/readline_methods.rb, line 8
def safe_readline(prompt)
  stty_save = `stty -g`.chomp
  begin
    Readline.readline prompt
  rescue Interrupt
    puts
    system("stty", stty_save)
    exit
  end
end
vv_enabled?() click to toggle source
# File lib/vv/readline_methods.rb, line 3
def vv_enabled?
  true
end

Private Instance Methods

prompt(message, exit_on_exit: true) click to toggle source
# File lib/vv/readline_methods.rb, line 20
def prompt message, exit_on_exit: true
  message.is_a! String
  message.concat " "

  input = Readline.safe_readline message

  if input.nil?
    puts
    exit
  end

  input.chomp!

  exit if input == "exit" and exit_on_exit

  input
end
prompt_yn(message, default: nil) click to toggle source
# File lib/vv/readline_methods.rb, line 39
def prompt_yn(message, default: nil)
  default = true  if default == "y" or default == "Y"
  default = false if default == "n" or default == "N"

  option = case default
           when nil
             "[y/n]"
           when false
             "[y/N]"
           when true
             "[Y/n]"
           end

  option.prepend " "
  message += option

  answer = nil

  loop do
    input = prompt(message)

    answer = default if input == ""
    answer = true  if input == "y" or input == "Y"
    answer = false if input == "n" or input == "N"

    break unless answer.nil?

    puts "Unrecognized input. Please enter response again."
  end

  answer
end
safe_readline(prompt) click to toggle source
# File lib/vv/readline_methods.rb, line 8
def safe_readline(prompt)
  stty_save = `stty -g`.chomp
  begin
    Readline.readline prompt
  rescue Interrupt
    puts
    system("stty", stty_save)
    exit
  end
end
vv_enabled?() click to toggle source
# File lib/vv/readline_methods.rb, line 3
def vv_enabled?
  true
end