class Mysh::Console
A wrapper for the mysh console terminal.
Public Class Methods
new()
click to toggle source
Setup the console wrapper.
# File lib/mysh/sources/console.rb, line 10 def initialize @eoi = false end
Public Instance Methods
eoi?()
click to toggle source
Have we reached the end of input?
# File lib/mysh/sources/console.rb, line 42 def eoi? @eoi end
get_command()
click to toggle source
Get the initial line of command input.
# File lib/mysh/sources/console.rb, line 15 def get_command puts MNV[:pre_prompt] if MNV.key?(:pre_prompt) get(prompt: MNV[:prompt]) rescue MiniReadlinePLE => err retry unless handle_get_error(err, :prompt) exit end
get_command_extra(str)
click to toggle source
Get additional lines of continued commands.
# File lib/mysh/sources/console.rb, line 24 def get_command_extra(str) get(prompt: MNV[:post_prompt] + '\\', prefix: str[0]) rescue MiniReadlinePLE => err retry unless handle_get_error(err, :post_prompt) exit end
handle_get_error(err, selector)
click to toggle source
Handle a readline error
# File lib/mysh/sources/console.rb, line 32 def handle_get_error(err, selector) puts "Error #{err.class}: #{err}" puts err.backtrace if MNV[:debug] MNV[selector].empty? ensure MNV[selector] = "" end
Private Instance Methods
get(parms={})
click to toggle source
Get some actual user input!
# File lib/mysh/sources/console.rb, line 49 def get(parms={}) parms[:history] = MNV[:history].extract_boolean unless parms.has_key?(:history) parms[:no_dups] = MNV[:no_dups].extract_boolean unless parms.has_key?(:no_dups) parms[:no_move] = MNV[:no_move].extract_boolean unless parms.has_key?(:no_move) result = (input = Mysh.input).readline(parms) input.instance_options[:initial] = "" result rescue MiniReadlineEOI @eoi = true "\n" end