Module Systems::Question
In: lib/systems/question.rb

Methods

Public Instance methods

[Source]

    # File lib/systems/question.rb, line 2
 2:   def active_question(id = nil)
 3:     if session[:question].nil?
 4:       # this is the first question
 5:       if id
 6:         begin
 7:           q = ::Question.find(id)
 8:         rescue
 9:         end
10:       end
11:       q = ::Question.fetch_first if q.nil?
12:     elsif refresh_question? || @new_question
13:       q = next_question
14:       self.next_question = nil
15:     end
16:     if q
17:       session[:question_prompts_shown] = 0
18:       session[:question_responses] = 0
19:       session[:question] = q
20:     else
21:       session[:question]
22:     end
23:   end

[Source]

    # File lib/systems/question.rb, line 38
38:   def current_question
39:     session[:question] || active_question
40:   end

[Source]

    # File lib/systems/question.rb, line 25
25:   def get_next_question
26:     cond = "questions.id != #{session[:question].id}"
27:     session[:next_question] = ::Question.fetch_new(cond)
28:   end

[Source]

    # File lib/systems/question.rb, line 30
30:   def next_question
31:     session[:next_question] || get_next_question
32:   end

[Source]

    # File lib/systems/question.rb, line 34
34:   def next_question=(q)
35:     session[:next_question] = q
36:   end

[Source]

    # File lib/systems/question.rb, line 42
42:   def question_responses
43:     session[:question_responses] || 0
44:   end

refresh question if over N questions asked

[Source]

    # File lib/systems/question.rb, line 51
51:   def refresh_question?
52:     question_responses >= refresh_question_after
53:   end

[Source]

    # File lib/systems/question.rb, line 46
46:   def refresh_question_after
47:     current_visit.prompts_per_question || Param.refresh_question_after
48:   end

[Validate]