| Module | Systems::Question |
| In: |
lib/systems/question.rb
|
# 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
# File lib/systems/question.rb, line 38
38: def current_question
39: session[:question] || active_question
40: end
# 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
# File lib/systems/question.rb, line 30
30: def next_question
31: session[:next_question] || get_next_question
32: end
# File lib/systems/question.rb, line 34
34: def next_question=(q)
35: session[:next_question] = q
36: end
# 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
# File lib/systems/question.rb, line 51
51: def refresh_question?
52: question_responses >= refresh_question_after
53: end