class OJS::Judge

Public Class Methods

code() click to toggle source
# File lib/ojsubmitter/judge.rb, line 70
def code
  File.read file, encoding: Encoding::UTF_8
end
file() click to toggle source
# File lib/ojsubmitter/judge.rb, line 66
def file
  @config['file']
end
hclient() click to toggle source
# File lib/ojsubmitter/judge.rb, line 46
def hclient
  @hclient ||= HTTPClient.new
end
language() click to toggle source
# File lib/ojsubmitter/judge.rb, line 58
def language
  @config['language']
end
login() click to toggle source
# File lib/ojsubmitter/judge.rb, line 15
def login
end
open_status() click to toggle source
# File lib/ojsubmitter/judge.rb, line 38
def open_status
  Util.open_browser status_url
end
password() click to toggle source
# File lib/ojsubmitter/judge.rb, line 54
def password
  @config['password']
end
post() click to toggle source
# File lib/ojsubmitter/judge.rb, line 34
def post
  raise NotImplementedError
end
problem_id() click to toggle source
# File lib/ojsubmitter/judge.rb, line 62
def problem_id
  @config['problem_id']
end
status_url() click to toggle source
# File lib/ojsubmitter/judge.rb, line 42
def status_url
  raise NotImplementedError
end
submit(*options) click to toggle source
# File lib/ojsubmitter/judge.rb, line 18
def submit(*options)
  @config = options[0].to_h if options
  login
  post
  Logger.info "Your source code has submitted successfully."
  Logger.info "Open browser..."
  sleep 1
  open_status
rescue LoginFailedError => err
  Logger.error "Login failed!"
rescue SubmissionError => err
  Logger.error "Failed to submit. Check your config."
rescue UnknownLanguageError => err
  Logger.error "No languages are matched."
end
user() click to toggle source
# File lib/ojsubmitter/judge.rb, line 50
def user
  @config['user']
end
valid_judges() click to toggle source
# File lib/ojsubmitter/judge.rb, line 11
def valid_judges
  %w[AOJ POJ SPOJ Codeforces AtCoder]
end