Class: CodeforcesAPI::MethodClass::Contest

Inherits:
Object
  • Object
show all
Defined in:
lib/codeforces_api/client/contest.rb

Instance Method Summary collapse

Instance Method Details

#hacks(contestId) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/codeforces_api/client/contest.rb', line 4

def hacks contestId
  params = {'contestId' => contestId}
  json_request = CodeforcesAPI.client.get('contest.hacks', params)
  if json_request['status'] != 'OK'
    raise json_request['result']
  else
    json_hacks = json_request['result']
    hacks = json_hacks.collect{ |h| CodeforcesAPI::Object::Hack.new(h) }
  end
end

#list(gym = false) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/codeforces_api/client/contest.rb', line 15

def list gym = false
  params = {'gym' => gym}
  json_request = CodeforcesAPI.client.get('contest.list', params)
  if json_request['status'] != 'OK'
    raise json_request['result']
  else
    json_contests = json_request['result']
    contests = json_contests.collect{ |c| CodeforcesAPI::Object::Contest.new(c) }
  end
end

#standings(contestId, optional_params = {}) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/codeforces_api/client/contest.rb', line 26

def standings contestId, optional_params = {}
  required_params = {'contestId' => contestId}
  json_request = CodeforcesAPI.client.get('contest.standings', required_params, optional_params)
  if json_request['status'] != 'OK'
    raise json_request['result']
  else
    json_result = json_request['result']

    json_contest = json_result['contest']
    json_problems = json_result['problems']
    json_rows = json_result['rows']

    {
      'contest' => CodeforcesAPI::Object::Contest.new(json_contest),
      'problems' => json_problems.collect{ |p| CodeforcesAPI::Object::Problem.new(p) },
      'rows' => json_rows.collect{ |r| CodeforcesAPI::Object::RanklistRow.new(r) },
    }
  end
end

#status(contestId, optional_params = {}) ⇒ Object



46
47
48
49
50
51
52
53
54
55
# File 'lib/codeforces_api/client/contest.rb', line 46

def status contestId, optional_params = {}
  required_params = {'contestId' => contestId}
  json_request = CodeforcesAPI.client.get('contest.status', required_params, optional_params)
  if json_request['status'] != 'OK'
    raise json_request['result']
  else
    json_submissions = json_request['result']
    submissinos = json_submissions.collect{ |sub| CodeforcesAPI::Object::Submission.new(sub) }
  end
end