class QandA::Question::Question
Public Class Methods
new(message: '', default: nil, &validation)
click to toggle source
# File lib/question/question.rb, line 4 def initialize(message: '', default: nil, &validation) @msg = message @default = default @validation ||= validation ? validation : nil @answer = nil end
Public Instance Methods
answer()
click to toggle source
# File lib/question/question.rb, line 26 def answer @answer end
ask() { || ... }
click to toggle source
# File lib/question/question.rb, line 11 def ask(&block) yield if block_given? str = "#{@msg}" str << " [#{@default}]" if @default str << ': ' while @answer == nil do print str a = $stdin.gets.chomp a = @default if @default && a.empty? @answer = a unless @validation @answer = a if @validation && instance_exec(a, &@validation) puts "Invalid answer, try again" unless @answer end end