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