class GradeRunner::Runner

Public Class Methods

new(submission_root_url, grades_access_token, rspec_output_json, username, reponame, sha, source) click to toggle source
# File lib/grade_runner/runner.rb, line 5
def initialize(submission_root_url, grades_access_token, rspec_output_json, username, reponame, sha, source)
  @submission_url = submission_root_url + submission_path
  @grades_access_token = grades_access_token
  @rspec_output_json = rspec_output_json
  @username = username
  @reponame = reponame
  @sha = sha
  @source = source
end

Public Instance Methods

process() click to toggle source
# File lib/grade_runner/runner.rb, line 15
def process
  puts "* Submitting the results."
  post_to_grades
end

Private Instance Methods

data() click to toggle source
# File lib/grade_runner/runner.rb, line 38
def data
  {
    access_token: @grades_access_token,
    test_output: @rspec_output_json,
    commit_sha: @sha,
    username: @username,
    reponame: @reponame,
    source: @source
  }
end
post_to_grades() click to toggle source
# File lib/grade_runner/runner.rb, line 22
def post_to_grades
  puts "- Posting to URL: " + "#{@submission_url}"
  uri = URI.parse(@submission_url)
  req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
  req.body = data.to_json
  res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(req)
  end
  results_url = JSON.parse(res.body)["url"]
  puts "- Done! Results URL: " + "#{results_url}"
end
submission_path() click to toggle source
# File lib/grade_runner/runner.rb, line 34
def submission_path
  "/builds"
end