class Tryouts::ExpectationEvaluators::Registry
def evaluator_for(expectation, test_case, context)
def evaluator_for(expectation, test_case, context) evaluator_class = find_evaluator_class(expectation.type) unless evaluator_class raise ArgumentError, "No evaluator found for expectation type: #{expectation.type}" end evaluator_class.new(expectation, test_case, context) end
def find_evaluator_class(expectation_type)
def find_evaluator_class(expectation_type) @evaluators.find { |evaluator_class| evaluator_class.handles?(expectation_type) } end
def register(evaluator_class)
def register(evaluator_class) unless evaluator_class < Base raise ArgumentError, 'Evaluator must inherit from ExpectationEvaluators::Base' end @evaluators << evaluator_class unless @evaluators.include?(evaluator_class) end
def registered_evaluators
def registered_evaluators @evaluators.dup end