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