Sha256: 2143a755faa7aa62e1b5f34f273ad91813d2702d0ad6160ca89d15a4458bf04b
Contents?: true
Size: 729 Bytes
Versions: 1
Compression:
Stored size: 729 Bytes
Contents
module Interactive class Question attr_accessor :question, :options def initialize(&block) yield self @options = Interactive::Options.new(Array(@options)) raise ArgumentError, "question cannot be nil nor empty." if question.nil? || question.empty? raise ArgumentError, "options cannot be empty." if options.empty? end def ask_and_wait_for_valid_response(&block) loop do puts "#{question} #{options.shortcuts_string}" resp = Interactive::Response.new(options) puts options.shortcuts_meanings if resp.invalid? yield resp break unless resp.invalid? end end private def response STDIN.gets.chomp end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
interactive-0.1.0 | lib/interactive/question.rb |