Class: Mumukit::Server::TestServer

Inherits:
Object
  • Object
show all
Includes:
WithContentType
Defined in:
lib/mumukit/server/test_server.rb

Instance Method Summary collapse

Methods included from WithContentType

#content_type

Instance Method Details

#info(url) ⇒ Object



12
13
14
15
16
17
# File 'lib/mumukit/server/test_server.rb', line 12

def info(url)
  runtime.info
      .merge(repo_url: default_repo_url)
      .merge(runtime..)
      .merge(url: url)
end

#parse_request(sinatra_request) ⇒ Object



22
23
24
# File 'lib/mumukit/server/test_server.rb', line 22

def parse_request(sinatra_request)
  OpenStruct.new parse_request_headers(sinatra_request).merge(parse_request_body(sinatra_request))
end

#parse_request_body(sinatra_request) ⇒ Object



30
31
32
33
34
# File 'lib/mumukit/server/test_server.rb', line 30

def parse_request_body(sinatra_request)
  JSON.parse(sinatra_request.body.read).tap do |it|
    I18n.locale = it['locale'] || :en
  end rescue {}
end

#parse_request_headers(sinatra_request) ⇒ Object



26
27
28
# File 'lib/mumukit/server/test_server.rb', line 26

def parse_request_headers(sinatra_request)
  {}
end

#query!(request) ⇒ Object



45
46
47
48
49
50
51
52
# File 'lib/mumukit/server/test_server.rb', line 45

def query!(request)
  respond_to(request) do |r|
    results = run_query!(r)
    Mumukit::Server::ResponseBuilder.build do
      add_query_results(results)
    end
  end
end

#run_expectations!(request) ⇒ Object



69
70
71
72
73
# File 'lib/mumukit/server/test_server.rb', line 69

def run_expectations!(request)
  return [] if should_skip_expectations?(request)

  compile_and_run runtime.expectations_hook, request
end

#run_feedback!(request, results) ⇒ Object



75
76
77
# File 'lib/mumukit/server/test_server.rb', line 75

def run_feedback!(request, results)
  runtime.feedback_hook.run!(request, results)
end

#run_tests!(request) ⇒ Object



63
64
65
66
67
# File 'lib/mumukit/server/test_server.rb', line 63

def run_tests!(request)
  return ['', :passed] if should_skip_tests?(request.test)

  compile_and_run runtime.test_hook, request
end

#runtimeObject



8
9
10
# File 'lib/mumukit/server/test_server.rb', line 8

def runtime
  Mumukit.runtime
end

#start_request!(_request) ⇒ Object



19
20
# File 'lib/mumukit/server/test_server.rb', line 19

def start_request!(_request)
end

#test!(request) ⇒ Object



36
37
38
39
40
41
42
43
# File 'lib/mumukit/server/test_server.rb', line 36

def test!(request)
  respond_to(request) do |r|
    pipeline = Mumukit::Server::TestPipeline.new self, r
    pipeline.evaluate!
    pipeline.generate_feedback!
    pipeline.response
  end
end

#try!(request) ⇒ Object



54
55
56
57
58
59
60
61
# File 'lib/mumukit/server/test_server.rb', line 54

def try!(request)
  respond_to(request) do |r|
    results = run_try!(r)
    Mumukit::Server::ResponseBuilder.build do
      add_try_results(results)
    end
  end
end