Class: PromptLine

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

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of PromptLine.



6
7
8
9
# File 'lib/prompt_line.rb', line 6

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

Instance Method Details

#messageObject



28
29
30
31
32
33
34
# File 'lib/prompt_line.rb', line 28

def message
  previous = saved_data
  previous_message = "\n"
  previous_message += "previous #{@attribute}: #{previous}\n" unless previous.empty?
  puts previous_message
  "#{@attribute}: "
end

#promptObject



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

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

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

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

#save(input) ⇒ Object



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

def save(input)
  File.open(path(@attribute), "w") {|f| f.write(input) }
end