Class: JSONAPI::Grader::SerializationGrader
- Inherits:
-
Object
- Object
- JSONAPI::Grader::SerializationGrader
- Defined in:
- lib/jsonapi/grader/serialization_grader.rb
Instance Method Summary collapse
- #grade ⇒ Object
-
#initialize(scenarii_file = 'scenarii_serialization.json', options = {}) ⇒ SerializationGrader
constructor
A new instance of SerializationGrader.
Constructor Details
#initialize(scenarii_file = 'scenarii_serialization.json', options = {}) ⇒ SerializationGrader
Returns a new instance of SerializationGrader.
6 7 8 9 10 |
# File 'lib/jsonapi/grader/serialization_grader.rb', line 6 def initialize(scenarii_file = 'scenarii_serialization.json', = {}) scenarii_file = File.("../../../#{scenarii_file}", __dir__) @scenarii = JSON.parse(File.read(scenarii_file)) @implementation_dir = [:implementation_dir] end |
Instance Method Details
#grade ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/jsonapi/grader/serialization_grader.rb', line 12 def grade compliance = true score = 0 max_score = 0 @scenarii.each do |scenario| current_score = score_scenario(scenario) compliance = false if scenario['required'] && current_score == 0 max_score += scenario['score'] score += current_score end STDERR.puts "Compliance: #{compliance}" score_percent = (100.0 * score / max_score).round(2) STDERR.puts "Score: #{score} / #{max_score} (#{score_percent}%)" score end |