Class: Logirel::Queries::StrQ
- Defined in:
- lib/logirel/queries/str_q.rb
Instance Attribute Summary
Attributes inherited from Query
Instance Method Summary collapse
- #answer ⇒ Object
- #exec ⇒ Object
-
#initialize(question, default = nil, io_source = STDIN, validator = nil, io_target = STDOUT) ⇒ StrQ
constructor
A new instance of StrQ.
Constructor Details
#initialize(question, default = nil, io_source = STDIN, validator = nil, io_target = STDOUT) ⇒ StrQ
Returns a new instance of StrQ.
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/logirel/queries/str_q.rb', line 6 def initialize(question, default = nil, io_source = STDIN, validator = nil, io_target = STDOUT) @question = question @default = default @io_source = io_source @validator = validator || lambda { |_| true } @io_target = io_target @answer = "" end |
Instance Method Details
#answer ⇒ Object
19 20 21 |
# File 'lib/logirel/queries/str_q.rb', line 19 def answer @answer.empty? ? @default : @answer end |
#exec ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/logirel/queries/str_q.rb', line 23 def exec @io_target.print @question + " [#{@default}]: " begin @answer = @io_source.gets.chomp valid = @validator.call(@answer) end while !valid || (!valid && @answer.empty?) @answer = @answer.empty? ? @default : @answer @io_target.puts "Chose '#{@answer}'." @answer end |