class Mumukit::Server::ResponseBuilder
Public Class Methods
build(&block)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 28 def self.build(&block) builder = new builder.instance_eval(&block) builder.build end
Public Instance Methods
add_expectation_results(r)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 11 def add_expectation_results(r) @response.merge!(expectationResults: r) if r.present? end
add_feedback(f)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 20 def add_feedback(f) @response.merge!(feedback: f) if f.present? end
add_query_results(r)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 7 def add_query_results(r) @response = unstructured_base_response(r) end
add_test_results(r)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 3 def add_test_results(r) @response = base_response(r) end
add_try_results(r)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 15 def add_try_results(r) @response = unstructured_base_response(r) @response.merge!(queryResult: r[2]) end
build()
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 24 def build @response end
Private Instance Methods
base_response(test_results)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 36 def base_response(test_results) if structured_test_result?(test_results) structured_base_response(test_results) elsif unstructured_test_result?(test_results) unstructured_base_response(test_results) elsif mixed_test_result?(test_results) mixed_base_response(test_results) else raise "Invalid test results format: #{test_results}. You must either return [results_array], [results_string, status] or [results_array, results_string, status]" end end
mixed_base_response(test_results)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 78 def mixed_base_response(test_results) structured_base_response(test_results).merge out: test_results[1], exit: test_results[2] end
mixed_test_result?(test_results)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 56 def mixed_test_result?(test_results) test_results.size == 3 && test_results[0].is_a?(Array) && test_results[1].is_a?(String) end
structured_base_response(test_results)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 60 def structured_base_response(test_results) { testResults: test_results[0].map do |title, status, result, summary| { summary: summary&.compact.presence } .compact .merge( title: title, status: status, result: result) end } end
structured_test_result?(test_results)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 48 def structured_test_result?(test_results) test_results.size == 1 && test_results[0].is_a?(Array) end
unstructured_base_response(test_results)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 73 def unstructured_base_response(test_results) {exit: test_results[1], out: test_results[0]} end
unstructured_test_result?(test_results)
click to toggle source
# File lib/mumukit/server/response_builder.rb, line 52 def unstructured_test_result?(test_results) test_results.size == 2 && test_results[0].is_a?(String) end