Class: Quizzes::QuestionFactory

Inherits:
Object
  • Object
show all
Defined in:
app/models/quizzes/question_factory.rb

Instance Method Summary collapse

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

#generateObject



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