module Mumukit::Assistant::Rule
Public Class Methods
parse(hash)
click to toggle source
# File lib/mumukit/assistant/rule.rb, line 2 def self.parse(hash) message = Mumukit::Assistant::Message.parse hash.indifferent_get(:then) w = hash.indifferent_get(:when) if w.is_a? Hash parse_complex_when w.first, message else parse_simple_when w, message end end
parse_complex_when(w, message)
click to toggle source
# File lib/mumukit/assistant/rule.rb, line 22 def self.parse_complex_when(w, message) condition, value = *w case condition.to_sym when :error_contains then Mumukit::Assistant::Rule::ErrorContains.new(message, value) when :these_tests_failed then Mumukit::Assistant::Rule::TheseTestsFailed.new(message, value) when :only_these_tests_failed then Mumukit::Assistant::Rule::OnlyTheseTestsFailed.new(message, value) when :these_expectations_failed then Mumukit::Assistant::Rule::TheseExpectationsFailed.new(message, value) when :only_these_expectations_failed then Mumukit::Assistant::Rule::OnlyTheseExpectationsFailed.new(message, value) when :submission_passed_with_these_warnings then Mumukit::Assistant::Rule::TheseExpectationsFailed.new(message, value, strict: true) when :submission_passed_with_only_these_warnings then Mumukit::Assistant::Rule::OnlyTheseExpectationsFailed.new(message, value, strict: true) else raise "Unsupported rule #{condition}" end end
parse_simple_when(w, message)
click to toggle source
# File lib/mumukit/assistant/rule.rb, line 12 def self.parse_simple_when(w, message) case w.to_sym when :content_empty then Mumukit::Assistant::Rule::ContentEmpty.new(message) when :submission_errored then Mumukit::Assistant::Rule::SubmissionErrored.new(message) when :submission_failed then Mumukit::Assistant::Rule::SubmissionFailed.new(message) when :submission_passed_with_warnings then Mumukit::Assistant::Rule::SubmissionPassedWithWarnings.new(message) else raise "Unsupported rule #{w}" end end