class Chake::Readline
Public Class Methods
finish()
click to toggle source
# File lib/chake/readline.rb, line 29 def finish return if !File.writable?(File.dirname(history_file)) || history.empty? File.open(history_file, 'w') do |f| history.last(500).each do |line| f.puts(line) end end end
history()
click to toggle source
# File lib/chake/readline.rb, line 16 def history @history ||= [] end
history_file()
click to toggle source
# File lib/chake/readline.rb, line 12 def history_file raise NotImplementedError end
init()
click to toggle source
# File lib/chake/readline.rb, line 24 def init return if !File.exists?(history_file) @history = File.readlines(history_file).map(&:strip) end
prompt()
click to toggle source
# File lib/chake/readline.rb, line 20 def prompt raise NotImplementedError end
readline()
click to toggle source
# File lib/chake/readline.rb, line 38 def readline ::Readline::HISTORY.clear history.each do |cmd| ::Readline::HISTORY.push(cmd) end input = ::Readline.readline(prompt) if input && input.strip != '' && input != @last history.push(input) end input end