Class: Interactive::Question
- Inherits:
-
Object
- Object
- Interactive::Question
- Extended by:
- Forwardable
- Defined in:
- lib/interactive/question.rb
Instance Attribute Summary collapse
-
#columns ⇒ Object
Returns the value of attribute columns.
-
#options ⇒ Object
Returns the value of attribute options.
-
#question ⇒ Object
Returns the value of attribute question.
Instance Method Summary collapse
- #ask(&block) ⇒ Object
- #ask_and_wait_for_valid_response(&block) ⇒ Object
-
#initialize {|_self| ... } ⇒ Question
constructor
A new instance of Question.
Constructor Details
#initialize {|_self| ... } ⇒ Question
Returns a new instance of Question.
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/interactive/question.rb', line 9 def initialize(&block) yield self @options = Interactive::Options(Array(@options), @columns) raise ArgumentError, "question cannot be nil nor empty." if question.nil? || question.empty? if @columns || @options.has_hash? @question_type = QuestionWithEagerFullExplanation.new(self) else @question_type = QuestionWithLazyFullExplanation.new(self) end end |
Instance Attribute Details
#columns ⇒ Object
Returns the value of attribute columns.
6 7 8 |
# File 'lib/interactive/question.rb', line 6 def columns @columns end |
#options ⇒ Object
Returns the value of attribute options.
6 7 8 |
# File 'lib/interactive/question.rb', line 6 def @options end |
#question ⇒ Object
Returns the value of attribute question.
6 7 8 |
# File 'lib/interactive/question.rb', line 6 def question @question end |
Instance Method Details
#ask(&block) ⇒ Object
26 27 28 |
# File 'lib/interactive/question.rb', line 26 def ask(&block) ask_and_wait_for_valid_response(&block) end |
#ask_and_wait_for_valid_response(&block) ⇒ Object
22 23 24 |
# File 'lib/interactive/question.rb', line 22 def ask_and_wait_for_valid_response(&block) @question_type.ask_and_wait_for_valid_response(&block) end |