class WollokHook

Public Instance Methods

compilation_error?(issue) click to toggle source
# File lib/wollok_hook.rb, line 29
def compilation_error?(issue)
  %w(org.eclipse.xtext.diagnostics.Diagnostic.Syntax
     org.eclipse.xtext.diagnostics.Diagnostic.Linking).include? issue['code']
end
compile(request) click to toggle source
# File lib/wollok_hook.rb, line 7
def compile(request)
  {program: compile_program(request),
   programType: program_type}
end
errored?(response) click to toggle source
# File lib/wollok_hook.rb, line 16
def errored?(response)
  response['compilation'] && response['compilation']['issues'].any? do |issue|
    compilation_error? issue
  end
end
extract_compilation_errors(response) click to toggle source
# File lib/wollok_hook.rb, line 22
def extract_compilation_errors(response)
  response['compilation']['issues']
      .select { |it| compilation_error? it  }
      .map { |it| transform_compilation_error(it) }
      .join("\n")
end
run!(request) click to toggle source
# File lib/wollok_hook.rb, line 3
def run!(request)
  transform_response JSON.pretty_parse(RestClient.post(server_path, request.to_json))
end
server_path() click to toggle source
# File lib/wollok_hook.rb, line 12
def server_path
  'http://server.wollok.org:8080/run'
end
transform_compilation_error(issue) click to toggle source
# File lib/wollok_hook.rb, line 34
def transform_compilation_error(issue)
  "#{issue['severity']}: #{issue['message']}"
end