Class: Quizzes::QuestionFactory
- Inherits:
-
Object
- Object
- Quizzes::QuestionFactory
- Defined in:
- app/models/quizzes/question_factory.rb
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(params = {}) ⇒ QuestionFactory
constructor
A new instance of QuestionFactory.
Constructor Details
#initialize(params = {}) ⇒ QuestionFactory
Returns a new instance of QuestionFactory.
4 5 6 7 8 9 10 11 |
# File 'app/models/quizzes/question_factory.rb', line 4 def initialize(params = {}) @levels = params[:levels] @used_questions = params[:used_questions] || [] @number_of_questions = params[:number_of_questions] unless @levels && @number_of_questions raise "It needs an array of levels and a number of questions" end end |
Instance Method Details
#generate ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/models/quizzes/question_factory.rb', line 13 def generate questions = search unless all_requested_questions_found?(questions) number_of_questions = reviewed_number_of_questions(questions) if(number_of_questions > 0) questions += Quizzes::QuestionFactory.new({ levels: Quizzes::Level.all_and_nil, used_questions: questions + @used_questions, number_of_questions: number_of_questions }).generate end end questions.sort{|a, b| a.level && b.level ? a.level.code <=> a.level.code : a.level ? -1 : 1 } end |