Class: Interactive::Question

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ Question

Returns a new instance of Question.

Yields:

  • (_self)

Yield Parameters:

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
12
# File 'lib/interactive/question.rb', line 5

def initialize(&block)
  yield self

  @options = Interactive::Options(Array(@options))

  raise ArgumentError, "question cannot be nil nor empty." if question.nil? || question.empty?
  @question_type = @options.has_hash? ? QuestionWithEagerFullExplanation.new(self) : QuestionWithLazyFullExplanation.new(self)
end

Instance Attribute Details

#optionsObject

Returns the value of attribute options.



3
4
5
# File 'lib/interactive/question.rb', line 3

def options
  @options
end

#questionObject

Returns the value of attribute question.



3
4
5
# File 'lib/interactive/question.rb', line 3

def question
  @question
end

Instance Method Details

#ask(&block) ⇒ Object



18
19
20
# File 'lib/interactive/question.rb', line 18

def ask(&block)
  ask_and_wait_for_valid_response(&block)
end

#ask_and_wait_for_valid_response(&block) ⇒ Object



14
15
16
# File 'lib/interactive/question.rb', line 14

def ask_and_wait_for_valid_response(&block)
  @question_type.ask_and_wait_for_valid_response(&block)
end