class Chake::Readline

Public Class Methods

finish() click to toggle source
# File lib/chake/readline.rb, line 27
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 13
def history
  @history ||= []
end
history_file() click to toggle source
# File lib/chake/readline.rb, line 9
def history_file
  raise NotImplementedError
end
init() click to toggle source
# File lib/chake/readline.rb, line 21
def init
  return unless File.exist?(history_file)

  @history = File.readlines(history_file).map(&:strip)
end
prompt() click to toggle source
# File lib/chake/readline.rb, line 17
def prompt
  raise NotImplementedError
end
readline() click to toggle source
# File lib/chake/readline.rb, line 37
def readline
  ::Readline::HISTORY.clear
  history.each do |cmd|
    ::Readline::HISTORY.push(cmd)
  end
  input = ::Readline.readline(prompt)
  history.push(input) if input && input.strip != '' && input != @last
  input
end