class Quizzer

Attributes

assessment[RW]
quizz[RW]
scores[RW]

Public Class Methods

get_file(path) click to toggle source
# File lib/quizzer.rb, line 45
def self.get_file(path)
  /^http:\/\//.match(path) ? open(path).read : IO.read(path)
end
manifest(file) click to toggle source
# File lib/quizzer.rb, line 15
def self.manifest(file)
  out = Array.new
  m = JSON.parse(get_file(file))
  m["tests"].each do |t|
    out.push self.test(t["quizz"], t["assessment"], t["scores"])
  end
  out
end
new(quizz, assessment) click to toggle source
# File lib/quizzer.rb, line 7
def initialize(quizz, assessment)
  raise "Obligatory quizz and assessment input" unless quizz || assessment

  @quizz = Quizz.new(JSON.parse(Quizzer.get_file(quizz)))
  @assessment = Assessment.new(JSON.parse(Quizzer.get_file(assessment)))
  @scores = Scores.new(@quizz, @assessment)
end
test(quizz, assessment, scores) click to toggle source
# File lib/quizzer.rb, line 24
def self.test(quizz, assessment, scores)
  q = Quizzer.new(quizz, assessment)
  s_test = JSON.parse get_file(scores)
  if q.scores.test(s_test)
    return [q, true]
  else
    return [q, false]
  end
end

Public Instance Methods

generate_scores(output = nil) click to toggle source
# File lib/quizzer.rb, line 34
def generate_scores(output = nil)
  if output
    File.open(output,"w") do |f|
      f.write(@scores.serialize)
    end
    true
  else
    @scores.serialize
  end
end