Class: RakeCommit::PromptLine

Inherits:
Object
  • Object
show all
Includes:
Readline
Defined in:
lib/rake_commit/prompt_line.rb

Instance Method Summary collapse

Constructor Details

#initialize(attribute, prompt_exclusions = []) ⇒ PromptLine

Returns a new instance of PromptLine.



8
9
10
11
# File 'lib/rake_commit/prompt_line.rb', line 8

def initialize(attribute, prompt_exclusions = [])
  @attribute = attribute
  @prompt_exclusions = prompt_exclusions
end

Instance Method Details

#messageObject



30
31
32
33
34
35
# File 'lib/rake_commit/prompt_line.rb', line 30

def message
  previous_message = "\n"
  previous_message += "previous #{@attribute}: #{previous_input}\n" if previous_input
  puts previous_message
  "#{@attribute}: "
end

#promptObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rake_commit/prompt_line.rb', line 13

def prompt
  return nil if @prompt_exclusions.include?(@attribute)
  input = nil
  loop do
    input = readline(message).chomp
    break unless (input.empty? && !previous_input)
  end

  unless input.empty?
    save_history(input)
    return input
  end

  puts "using: #{previous_input}"
  return previous_input
end

#save_history(input) ⇒ Object



37
38
39
# File 'lib/rake_commit/prompt_line.rb', line 37

def save_history(input)
  File.open(history_file, "a") { |f| f.puts(input) }
end