git-contest 0.0.3 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +13 -5
  2. data/.travis.yml +1 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +22 -25
  5. data/bin/git-contest +2 -2
  6. data/bin/git-contest-finish +2 -2
  7. data/bin/git-contest-init +2 -2
  8. data/bin/git-contest-rebase +2 -2
  9. data/bin/git-contest-start +2 -2
  10. data/bin/git-contest-submit +34 -17
  11. data/git-contest.gemspec +2 -2
  12. data/lib/contest/driver.rb +3 -0
  13. data/lib/contest/driver/aizu_online_judge.rb +12 -12
  14. data/lib/contest/driver/base.rb +44 -19
  15. data/lib/contest/driver/codeforces.rb +21 -15
  16. data/lib/contest/driver/common.rb +21 -5
  17. data/lib/contest/driver/driver_event.rb +1 -1
  18. data/lib/contest/driver/kattis.rb +168 -0
  19. data/lib/contest/driver/uva_online_judge.rb +14 -11
  20. data/lib/git/contest/version.rb +2 -2
  21. data/spec/bin/t004_git_contest_submit_spec.rb +143 -69
  22. data/spec/lib/contest/driver/t001_aizu_online_judge_spec.rb +46 -29
  23. data/spec/lib/contest/driver/t002_codeforces_spec.rb +185 -20
  24. data/spec/lib/contest/driver/t003_uva_online_judge_spec.rb +157 -10
  25. data/spec/lib/contest/driver/t010_kattis_spec.rb +207 -0
  26. data/spec/mock/default_config/plugins/driver_dummy.rb +31 -11
  27. data/spec/mock/t002/codeforces_after_submit.html +45 -0
  28. data/spec/mock/t002/codeforces_enter.html +67 -0
  29. data/spec/mock/t002/codeforces_submit.html +110 -0
  30. data/spec/mock/t002/codeforces_wait_result.html +58 -0
  31. data/spec/mock/t003/uva_after_quick_submit.html +17 -0
  32. data/spec/mock/t003/uva_home.html +39 -0
  33. data/spec/mock/t003/uva_my_submissions.html +111 -0
  34. data/spec/mock/t003/uva_quick_submit.html +67 -0
  35. data/spec/mock/t010/open_kattis_com_login.html +20 -0
  36. data/spec/mock/t010/open_kattis_com_submit.html +54 -0
  37. data/spec/mock/t010/open_kattis_com_user_submissions.html +28 -0
  38. data/spec/mock/t010/user_submission_111111.html +30 -0
  39. data/spec/mock/t010/user_submission_222222.html +79 -0
  40. data/spec/mock/t010/user_submissions.html +39 -0
  41. metadata +58 -27
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3
+ <body>
4
+ <div id="page_margins">
5
+ <div id="page" class="hold_floats">
6
+ <div id="main">
7
+ <div id="col3">
8
+ <div id="col3_content" class="clearfix">
9
+ <div id="col3_content_wrapper" class="floatbox">
10
+ <a id="content" name="content"></a>
11
+ <div class="componentheading">Quick Submit</div>
12
+ <h1></h1>
13
+ <form action="index.php?option=com_onlinejudge&amp;Itemid=25&amp;page=save_submission"
14
+ method="post" enctype="multipart/form-data">
15
+ <input type="hidden" name="problemid" value=""/>
16
+ <input type="hidden" name="category" value=""/>
17
+ <table width="100%" cellspacing="4" cellpadding="2" border="0">
18
+ <tr>
19
+ <td width="15%">Problem ID</td>
20
+ <td width="70%"><input type="text" size="10" maxlength="10" name="localid"/></td>
21
+ <td>&nbsp;</td>
22
+ </tr>
23
+ <tr>
24
+ <td width="15%" style="vertical-align : top ;">Language</td>
25
+ <td width="70%">
26
+ <input type="radio" name="language" value="1" />&nbsp;
27
+ ANSI C&nbsp;4.8.2&nbsp;-&nbsp;GNU C Compiler with options: -lm -lcrypt -O2 -pipe -ansi -DONLINE_JUDGE<br/>
28
+ <input type="radio" name="language" value="2" />&nbsp;
29
+ JAVA&nbsp;1.7.0&nbsp;-&nbsp;Java Sun JDK<br/>
30
+ <input type="radio" name="language" value="3" />&nbsp;
31
+ C++&nbsp;4.8.2&nbsp;-&nbsp;GNU C++ Compiler with options: -lm -lcrypt -O2 -pipe -DONLINE_JUDGE<br/>
32
+ <input type="radio" name="language" value="4" />&nbsp;
33
+ PASCAL&nbsp;2.6.2&nbsp;-&nbsp;Free Pascal Compiler<br/>
34
+ <input type="radio" name="language" value="5" />&nbsp;
35
+ C++11&nbsp;4.8.2&nbsp;-&nbsp;GNU C++ Compiler with options: -lm -lcrypt -O2 -std=c++11 -pipe -DONLINE_JUDGE<br/>
36
+ </td>
37
+ <td>&nbsp;</td>
38
+ </tr>
39
+ <tr>
40
+ <td width="15%" style="vertical-align : top;">Paste your code...</td>
41
+ <td width="70%">
42
+ <textarea name="code" rows="20" cols="60" ></textarea>
43
+ </td>
44
+ <td>&nbsp;</td>
45
+ </tr>
46
+ <tr>
47
+ <td width="15%">...or upload it</td>
48
+ <td width="70%">
49
+ <input type="file" name="codeupl" size="50"></textarea>
50
+ </td>
51
+ <td>&nbsp;</td>
52
+ </tr>
53
+ <tr>
54
+ <td width="15%">&nbsp;</td>
55
+ <td width="70%"><input type="submit" value="Submit"/>&nbsp;&nbsp;<input type="reset" value="Reset form"/></td>
56
+ <td>&nbsp;</td>
57
+ </tr>
58
+ </table>
59
+ </form>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </body>
66
+ </html>
67
+
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <div class='container'>
5
+ <h1><center>Log in or sign up for Kattis</center></h1><br />
6
+ <div class="login">
7
+ <div class="login-right">
8
+ <form action="login?email_login=true" method="post">
9
+ <input type='hidden' name='csrf_token' value='this is dummy' />
10
+ Username or email<br />
11
+ <input name="user" type="text" title="user" /><br />
12
+ Password<br />
13
+ <input name="password" type="password" title="pass" /><br /><br />
14
+ <input type="submit" name="submit" value="Submit" />
15
+ </form>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </body>
20
+ </html>
@@ -0,0 +1,54 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <div class='container'>
5
+ <h1>Upload to judge</h1><form action='submit' name='upload' method='post' enctype='multipart/form-data'>
6
+ <input type='hidden' name='csrf_token' value='this is dummy' />
7
+ <table id='submit_table' width='100%'>
8
+ <tr>
9
+ <td>
10
+ <span id='sub_files'>Select files to upload <input type='file' name='sub_file[]' id='sub_files_input' multiple onChange='hideEditor("sub_code"); document.getElementById("show_editor_button_sub_code").style.display="none"; document.getElementById("cancel").disabled=false; fileDialogEnabled();' />
11
+ </span>
12
+ <button id='show_editor_button_sub_code' name='editor_visible' type='button' onClick='showEditor("sub_code"); document.getElementById("show_editor_button_sub_code").style.display="none"; document.getElementById("sub_files").style.display="none"; document.getElementById("cancel").disabled=false; editorEnabled();'>OR open an editor</button><br />
13
+ </td>
14
+ </tr>
15
+ <tr>
16
+ <td colspan='2'>
17
+ <div id='editor_resize' style='display:none'><div class='editor_wrapper' id='sub_code_box' style='display:none'>
18
+ <div id='sub_code'></div>
19
+ </div>
20
+ </div>
21
+ <input type='hidden' id='sub_code_submit' name='sub_code' value='' />
22
+ </td>
23
+ </tr>
24
+ <tr>
25
+ <td>
26
+ Problem ID: <input type='text' name='problem' value='' list='problems'/>
27
+ </td>
28
+ <td>
29
+ <tr>
30
+ <td>Language:
31
+ <select name='lang' onChange='setLanguageChoice(parseInt(document.upload.lang.value), "")'>
32
+ <option value='1' selected='selected'>C++</option>
33
+ <option value='2' >C</option>
34
+ <option value='3' >Java</option>
35
+ <option value='6' >Python 2</option>
36
+ <option value='8' >Python 3</option>
37
+ <option value='9' >C#</option>
38
+ <option value='10' >Go</option>
39
+ <option value='11' >Objective-C</option>
40
+ </select> </td>
41
+ </tr>
42
+ <tr>
43
+ <td></td>
44
+ <td>
45
+ <button id='cancel' name='cancel' type='button' onClick='window.location="submit";' disabled>Cancel</button>
46
+ <input type='submit' name='submit' onClick='setEditorValues();' value='Submit' />
47
+ </td>
48
+ </tr>
49
+ </table>
50
+ <input type='hidden' name='submit_ctr' value='1' />
51
+ </form>
52
+ </div>
53
+ </body>
54
+ </html>
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <div class='container'>
5
+ <h1>test user</h1>
6
+ <div id='stats'>
7
+ <table id='submissions'>
8
+ <tr>
9
+ <th>ID</th>
10
+ <th>Date</th>
11
+ <th>Problem</th>
12
+ <th>Status</th>
13
+ <th>CPU</th>
14
+ <th>Lang</th>
15
+ </tr>
16
+ <tr>
17
+ <td><a href='submission?id=999999'>999999</a></td>
18
+ <td>2014-01-01 00:00:00</td>
19
+ <td><a href="problems/333333">Problem Name</a></td>
20
+ <td class='status'><span class="rejected">Wrong Answer</span></td>
21
+ <td class='runtime'>0.00&nbsp;s</td>
22
+ <td>C++</td>
23
+ </tr>
24
+ </table>
25
+ </div>
26
+ </div>
27
+ </body>
28
+ </html>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <div class="container">
5
+ <h1>Submission</h1>
6
+ <table id="judge_table">
7
+ <tbody>
8
+ <tr>
9
+ <th>ID</th>
10
+ <th>Date</th>
11
+ <th>Problem</th>
12
+ <th>Status</th>
13
+ <th>CPU</th>
14
+ <th>Lang</th>
15
+ <th>Test cases</th>
16
+ </tr>
17
+ <tr>
18
+ <td><a href="submission?id=111111">111111</a></td>
19
+ <td>04:46:40</td>
20
+ <td><a href="problems/aaah">Aaah!</a></td>
21
+ <td class="status"><span class="accepted">Accepted</span></td>
22
+ <td class="runtime">0.00&nbsp;s</td>
23
+ <td>C++</td>
24
+ <td><div class="testcases"><span class="accepted" title="Test case 1/52: Accepted"> ✔ </span><span class="accepted" title="Test case 2/52: Accepted"> ✔ </span><span class="accepted" title="Test case 3/52: Accepted"> ✔ </span><span class="accepted" title="Test case 4/52: Accepted"> ✔ </span><span class="accepted" title="Test case 5/52: Accepted"> ✔ </span><span class="accepted" title="Test case 6/52: Accepted"> ✔ </span><span class="accepted" title="Test case 7/52: Accepted"> ✔ </span><span class="accepted" title="Test case 8/52: Accepted"> ✔ </span><span class="accepted" title="Test case 9/52: Accepted"> ✔ </span><span class="accepted" title="Test case 10/52: Accepted"> ✔ </span><span class="accepted" title="Test case 11/52: Accepted"> ✔ </span><span class="accepted" title="Test case 12/52: Accepted"> ✔ </span><span class="accepted" title="Test case 13/52: Accepted"> ✔ </span><span class="accepted" title="Test case 14/52: Accepted"> ✔ </span><span class="accepted" title="Test case 15/52: Accepted"> ✔ </span><span class="accepted" title="Test case 16/52: Accepted"> ✔ </span><span class="accepted" title="Test case 17/52: Accepted"> ✔ </span><span class="accepted" title="Test case 18/52: Accepted"> ✔ </span><span class="accepted" title="Test case 19/52: Accepted"> ✔ </span><span class="accepted" title="Test case 20/52: Accepted"> ✔ </span><span class="accepted" title="Test case 21/52: Accepted"> ✔ </span><span class="accepted" title="Test case 22/52: Accepted"> ✔ </span><span class="accepted" title="Test case 23/52: Accepted"> ✔ </span><span class="accepted" title="Test case 24/52: Accepted"> ✔ </span><span class="accepted" title="Test case 25/52: Accepted"> ✔ </span><span class="accepted" title="Test case 26/52: Accepted"> ✔ </span><span class="accepted" title="Test case 27/52: Accepted"> ✔ </span><span class="accepted" title="Test case 28/52: Accepted"> ✔ </span><span class="accepted" title="Test case 29/52: Accepted"> ✔ </span><span class="accepted" title="Test case 30/52: Accepted"> ✔ </span><span class="accepted" title="Test case 31/52: Accepted"> ✔ </span><span class="accepted" title="Test case 32/52: Accepted"> ✔ </span><span class="accepted" title="Test case 33/52: Accepted"> ✔ </span><span class="accepted" title="Test case 34/52: Accepted"> ✔ </span><span class="accepted" title="Test case 35/52: Accepted"> ✔ </span><span class="accepted" title="Test case 36/52: Accepted"> ✔ </span><span class="accepted" title="Test case 37/52: Accepted"> ✔ </span><span class="accepted" title="Test case 38/52: Accepted"> ✔ </span><span class="accepted" title="Test case 39/52: Accepted"> ✔ </span><span class="accepted" title="Test case 40/52: Accepted"> ✔ </span><span class="accepted" title="Test case 41/52: Accepted"> ✔ </span><span class="accepted" title="Test case 42/52: Accepted"> ✔ </span><span class="accepted" title="Test case 43/52: Accepted"> ✔ </span><span class="accepted" title="Test case 44/52: Accepted"> ✔ </span><span class="accepted" title="Test case 45/52: Accepted"> ✔ </span><span class="accepted" title="Test case 46/52: Accepted"> ✔ </span><span class="accepted" title="Test case 47/52: Accepted"> ✔ </span><span class="accepted" title="Test case 48/52: Accepted"> ✔ </span><span class="accepted" title="Test case 49/52: Accepted"> ✔ </span><span class="accepted" title="Test case 50/52: Accepted"> ✔ </span><span class="accepted" title="Test case 51/52: Accepted"> ✔ </span><span class="accepted" title="Test case 52/52: Accepted"> ✔ </span></div></td>
25
+ </tr>
26
+ </tbody>
27
+ </table>
28
+ </div>
29
+ </body>
30
+ </html>
@@ -0,0 +1,79 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <div class="container">
5
+ <h1>Submission</h1>
6
+ <table id="judge_table">
7
+ <tbody>
8
+ <tr>
9
+ <th>ID</th>
10
+ <th>Date</th>
11
+ <th>Problem</th>
12
+ <th>Status</th>
13
+ <th>CPU</th>
14
+ <th>Lang</th>
15
+ <th>Test cases</th>
16
+ </tr>
17
+ <tr>
18
+ <td><a href="submission?id=222222">222222</a></td>
19
+ <td>04:43:57</td>
20
+ <td><a href="problems/aaah">Aaah!</a></td>
21
+ <td class="status"><span class="rejected">Wrong Answer</span></td>
22
+ <td class="runtime">0.00&nbsp;s</td>
23
+ <td>C++</td>
24
+ <td>
25
+ <div class="testcases"><span class="accepted" title="Test case 1/52: Accepted"> ✔ </span><span class="accepted" title="Test case 2/52: Accepted"> ✔ </span><span class="accepted" title="Test case 3/52: Accepted"> ✔ </span><span class="rejected" title="Test case 4/52: Wrong Answer"> ✘ </span><span title="Test case 5/52: not checked
26
+ "> &nbsp; </span><span title="Test case 6/52: not checked
27
+ "> &nbsp; </span><span title="Test case 7/52: not checked
28
+ "> &nbsp; </span><span title="Test case 8/52: not checked
29
+ "> &nbsp; </span><span title="Test case 9/52: not checked
30
+ "> &nbsp; </span><span title="Test case 10/52: not checked
31
+ "> &nbsp; </span><span title="Test case 11/52: not checked
32
+ "> &nbsp; </span><span title="Test case 12/52: not checked
33
+ "> &nbsp; </span><span title="Test case 13/52: not checked
34
+ "> &nbsp; </span><span title="Test case 14/52: not checked
35
+ "> &nbsp; </span><span title="Test case 15/52: not checked
36
+ "> &nbsp; </span><span title="Test case 16/52: not checked
37
+ "> &nbsp; </span><span title="Test case 17/52: not checked
38
+ "> &nbsp; </span><span title="Test case 18/52: not checked
39
+ "> &nbsp; </span><span title="Test case 19/52: not checked
40
+ "> &nbsp; </span><span title="Test case 20/52: not checked
41
+ "> &nbsp; </span><span title="Test case 21/52: not checked
42
+ "> &nbsp; </span><span title="Test case 22/52: not checked
43
+ "> &nbsp; </span><span title="Test case 23/52: not checked
44
+ "> &nbsp; </span><span title="Test case 24/52: not checked
45
+ "> &nbsp; </span><span title="Test case 25/52: not checked
46
+ "> &nbsp; </span><span title="Test case 26/52: not checked
47
+ "> &nbsp; </span><span title="Test case 27/52: not checked
48
+ "> &nbsp; </span><span title="Test case 28/52: not checked
49
+ "> &nbsp; </span><span title="Test case 29/52: not checked
50
+ "> &nbsp; </span><span title="Test case 30/52: not checked
51
+ "> &nbsp; </span><span title="Test case 31/52: not checked
52
+ "> &nbsp; </span><span title="Test case 32/52: not checked
53
+ "> &nbsp; </span><span title="Test case 33/52: not checked
54
+ "> &nbsp; </span><span title="Test case 34/52: not checked
55
+ "> &nbsp; </span><span title="Test case 35/52: not checked
56
+ "> &nbsp; </span><span title="Test case 36/52: not checked
57
+ "> &nbsp; </span><span title="Test case 37/52: not checked
58
+ "> &nbsp; </span><span title="Test case 38/52: not checked
59
+ "> &nbsp; </span><span title="Test case 39/52: not checked
60
+ "> &nbsp; </span><span title="Test case 40/52: not checked
61
+ "> &nbsp; </span><span title="Test case 41/52: not checked
62
+ "> &nbsp; </span><span title="Test case 42/52: not checked
63
+ "> &nbsp; </span><span title="Test case 43/52: not checked
64
+ "> &nbsp; </span><span title="Test case 44/52: not checked
65
+ "> &nbsp; </span><span title="Test case 45/52: not checked
66
+ "> &nbsp; </span><span title="Test case 46/52: not checked
67
+ "> &nbsp; </span><span title="Test case 47/52: not checked
68
+ "> &nbsp; </span><span title="Test case 48/52: not checked
69
+ "> &nbsp; </span><span title="Test case 49/52: not checked
70
+ "> &nbsp; </span><span title="Test case 50/52: not checked
71
+ "> &nbsp; </span><span title="Test case 51/52: not checked
72
+ "> &nbsp; </span><span title="Test case 52/52: not checked
73
+ "> &nbsp; </span></div></td>
74
+ </tr>
75
+ </tbody>
76
+ </table>
77
+ </div>
78
+ </body>
79
+ </html>
@@ -0,0 +1,39 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <body>
4
+ <table id='submissions'>
5
+ <tr>
6
+ <th>ID</th>
7
+ <th>Date</th>
8
+ <th>Problem</th>
9
+ <th>Status</th>
10
+ <th>CPU</th>
11
+ <th>Lang</th>
12
+ </tr>
13
+ <tr>
14
+ <td><a href='submission?id=111111'>111111</a></td>
15
+ <td>04:46:40</td>
16
+ <td><a href="problems/aaah">Aaah!</a></td>
17
+ <td class='status'><span class="accepted">Accepted</span></td>
18
+ <td class='runtime'>0.00&nbsp;s</td>
19
+ <td>C++</td>
20
+ </tr>
21
+ <tr>
22
+ <td><a href='submission?id=222222'>222222</a></td>
23
+ <td>04:43:57</td>
24
+ <td><a href="problems/aaah">Aaah!</a></td>
25
+ <td class='status'><span class="rejected">Wrong Answer</span></td>
26
+ <td class='runtime'>0.00&nbsp;s</td>
27
+ <td>C++</td>
28
+ </tr>
29
+ <tr>
30
+ <td><a href='submission?id=333333'>333333</a></td>
31
+ <td>04:42:39</td>
32
+ <td><a href="problems/aaah">Aaah!</a></td>
33
+ <td class='status'><span class="rejected">Wrong Answer</span></td>
34
+ <td class='runtime'>0.00&nbsp;s</td>
35
+ <td>C++</td>
36
+ </tr>
37
+ </table>
38
+ </body>
39
+ </html>
metadata CHANGED
@@ -1,142 +1,142 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-contest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroyuki Sano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-20 00:00:00.000000000 Z
11
+ date: 2014-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: trollop
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: highline
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '1.3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.3'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: watchr
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - ! '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - ! '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - ! '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: webmock
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - ! '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - ! '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
- description: the Git Extension for online judge (Codeforces, etc...)
139
+ description: The Git Extension for online judges (Codeforces, etc...)
140
140
  email:
141
141
  - sh19910711@gmail.com
142
142
  executables:
@@ -149,9 +149,9 @@ executables:
149
149
  extensions: []
150
150
  extra_rdoc_files: []
151
151
  files:
152
- - ".gitignore"
153
- - ".rspec"
154
- - ".travis.yml"
152
+ - .gitignore
153
+ - .rspec
154
+ - .travis.yml
155
155
  - Gemfile
156
156
  - LICENSE.txt
157
157
  - README.md
@@ -169,6 +169,7 @@ files:
169
169
  - lib/contest/driver/codeforces.rb
170
170
  - lib/contest/driver/common.rb
171
171
  - lib/contest/driver/driver_event.rb
172
+ - lib/contest/driver/kattis.rb
172
173
  - lib/contest/driver/uva_online_judge.rb
173
174
  - lib/git/contest.rb
174
175
  - lib/git/contest/common.rb
@@ -183,6 +184,7 @@ files:
183
184
  - spec/lib/contest/driver/t001_aizu_online_judge_spec.rb
184
185
  - spec/lib/contest/driver/t002_codeforces_spec.rb
185
186
  - spec/lib/contest/driver/t003_uva_online_judge_spec.rb
187
+ - spec/lib/contest/driver/t010_kattis_spec.rb
186
188
  - spec/mock/default_config/config.yml
187
189
  - spec/mock/default_config/plugins/driver_dummy.rb
188
190
  - spec/mock/t001/002.status_log.xml
@@ -190,10 +192,18 @@ files:
190
192
  - spec/mock/t001/description.html
191
193
  - spec/mock/t001/status.html
192
194
  - spec/mock/t001/status_log.xml
195
+ - spec/mock/t002/codeforces_after_submit.html
196
+ - spec/mock/t002/codeforces_enter.html
197
+ - spec/mock/t002/codeforces_submit.html
198
+ - spec/mock/t002/codeforces_wait_result.html
193
199
  - spec/mock/t002/my_submissions.html
194
200
  - spec/mock/t003/after_submit.html
195
201
  - spec/mock/t003/my_submissions.compile_error.html
196
202
  - spec/mock/t003/my_submissions.sent_to_judge.html
203
+ - spec/mock/t003/uva_after_quick_submit.html
204
+ - spec/mock/t003/uva_home.html
205
+ - spec/mock/t003/uva_my_submissions.html
206
+ - spec/mock/t003/uva_quick_submit.html
197
207
  - spec/mock/t004/config.yml
198
208
  - spec/mock/t005/001/config.yml
199
209
  - spec/mock/t006/001/001/001/config.yml
@@ -205,6 +215,12 @@ files:
205
215
  - spec/mock/t006/001/003/001/config.yml
206
216
  - spec/mock/t006/001/003/002/config.yml
207
217
  - spec/mock/t006/001/003/003/config.yml
218
+ - spec/mock/t010/open_kattis_com_login.html
219
+ - spec/mock/t010/open_kattis_com_submit.html
220
+ - spec/mock/t010/open_kattis_com_user_submissions.html
221
+ - spec/mock/t010/user_submission_111111.html
222
+ - spec/mock/t010/user_submission_222222.html
223
+ - spec/mock/t010/user_submissions.html
208
224
  - spec/spec_helper.rb
209
225
  - spec/spec_list.txt
210
226
  - spec/t006_config_spec.rb
@@ -218,12 +234,12 @@ require_paths:
218
234
  - lib
219
235
  required_ruby_version: !ruby/object:Gem::Requirement
220
236
  requirements:
221
- - - ">="
237
+ - - ! '>='
222
238
  - !ruby/object:Gem::Version
223
239
  version: '0'
224
240
  required_rubygems_version: !ruby/object:Gem::Requirement
225
241
  requirements:
226
- - - ">="
242
+ - - ! '>='
227
243
  - !ruby/object:Gem::Version
228
244
  version: '0'
229
245
  requirements: []
@@ -231,7 +247,7 @@ rubyforge_project:
231
247
  rubygems_version: 2.1.11
232
248
  signing_key:
233
249
  specification_version: 4
234
- summary: the Git Extension for online judge (Codeforces, etc...)
250
+ summary: The Git Extension for online judges (Codeforces, etc...)
235
251
  test_files:
236
252
  - spec/bin/t004_git_contest_submit_spec.rb
237
253
  - spec/bin/t005_git_contest_branching_spec.rb
@@ -241,6 +257,7 @@ test_files:
241
257
  - spec/lib/contest/driver/t001_aizu_online_judge_spec.rb
242
258
  - spec/lib/contest/driver/t002_codeforces_spec.rb
243
259
  - spec/lib/contest/driver/t003_uva_online_judge_spec.rb
260
+ - spec/lib/contest/driver/t010_kattis_spec.rb
244
261
  - spec/mock/default_config/config.yml
245
262
  - spec/mock/default_config/plugins/driver_dummy.rb
246
263
  - spec/mock/t001/002.status_log.xml
@@ -248,10 +265,18 @@ test_files:
248
265
  - spec/mock/t001/description.html
249
266
  - spec/mock/t001/status.html
250
267
  - spec/mock/t001/status_log.xml
268
+ - spec/mock/t002/codeforces_after_submit.html
269
+ - spec/mock/t002/codeforces_enter.html
270
+ - spec/mock/t002/codeforces_submit.html
271
+ - spec/mock/t002/codeforces_wait_result.html
251
272
  - spec/mock/t002/my_submissions.html
252
273
  - spec/mock/t003/after_submit.html
253
274
  - spec/mock/t003/my_submissions.compile_error.html
254
275
  - spec/mock/t003/my_submissions.sent_to_judge.html
276
+ - spec/mock/t003/uva_after_quick_submit.html
277
+ - spec/mock/t003/uva_home.html
278
+ - spec/mock/t003/uva_my_submissions.html
279
+ - spec/mock/t003/uva_quick_submit.html
255
280
  - spec/mock/t004/config.yml
256
281
  - spec/mock/t005/001/config.yml
257
282
  - spec/mock/t006/001/001/001/config.yml
@@ -263,6 +288,12 @@ test_files:
263
288
  - spec/mock/t006/001/003/001/config.yml
264
289
  - spec/mock/t006/001/003/002/config.yml
265
290
  - spec/mock/t006/001/003/003/config.yml
291
+ - spec/mock/t010/open_kattis_com_login.html
292
+ - spec/mock/t010/open_kattis_com_submit.html
293
+ - spec/mock/t010/open_kattis_com_user_submissions.html
294
+ - spec/mock/t010/user_submission_111111.html
295
+ - spec/mock/t010/user_submission_222222.html
296
+ - spec/mock/t010/user_submissions.html
266
297
  - spec/spec_helper.rb
267
298
  - spec/spec_list.txt
268
299
  - spec/t006_config_spec.rb