class Smartdown::Api::State
Attributes
accepted_responses[R]
current_answers[R]
current_node[R]
previous_questionpage_smartdown_nodes[R]
Public Class Methods
new(current_node, previous_questionpage_smartdown_nodes, accepted_responses, current_answers)
click to toggle source
# File lib/smartdown/api/state.rb, line 9 def initialize(current_node, previous_questionpage_smartdown_nodes, accepted_responses, current_answers) @current_node = current_node @previous_questionpage_smartdown_nodes = previous_questionpage_smartdown_nodes @accepted_responses = accepted_responses @current_answers = current_answers end
Public Instance Methods
current_question_number()
click to toggle source
# File lib/smartdown/api/state.rb, line 34 def current_question_number accepted_responses.count + 1 end
finished?()
click to toggle source
# File lib/smartdown/api/state.rb, line 30 def finished? current_node.is_a? Smartdown::Api::Outcome end
previous_answers()
click to toggle source
# File lib/smartdown/api/state.rb, line 16 def previous_answers previous_question_pages.map { |previous_question_page| previous_question_page.answers }.flatten end
previous_question_pages()
click to toggle source
# File lib/smartdown/api/state.rb, line 22 def previous_question_pages @previous_question_pages ||= build_question_pages(accepted_responses) end
started?()
click to toggle source
# File lib/smartdown/api/state.rb, line 26 def started? !current_node.is_a? Smartdown::Api::Coversheet end
Private Instance Methods
build_question_pages(responses)
click to toggle source
# File lib/smartdown/api/state.rb, line 42 def build_question_pages(responses) resp = responses.dup previous_questionpage_smartdown_nodes.map do |smartdown_questionpage_node| page_questions = resp.take(smartdown_questionpage_node.questions.count) resp = resp.drop(smartdown_questionpage_node.questions.count) Smartdown::Api::PreviousQuestionPage.new(smartdown_questionpage_node, page_questions) end end