at_coder_friends 0.6.4 → 0.6.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ac22f93d26dc92de38a01ed67b2fa1a8465380c2
4
- data.tar.gz: 28e89a872bcc0825b5a4f53019fd43a7dea07511
3
+ metadata.gz: cbf2c089d89bcf9e3a8acf248715fdcaf59cb24f
4
+ data.tar.gz: baa90cc2da792563e25da6f7f33e55d479e3c58e
5
5
  SHA512:
6
- metadata.gz: dee4b060fbd70915fa8e59c170a9d02e9d2ae8af925251d89e4fb3f5b1a9d7d33e20f71ffb39de4ea54190ff50011ac0ad8795149c576134a12f876448831cf8
7
- data.tar.gz: 02a32cd3a62047c90cd8dd30269a8d5d6c82d443bc1f7e7adebfddc4c78742a6d4bd3ff6f53a24ec71f10da5bdd74a34ce9107cd7463d6b1b575adc317714bf5
6
+ metadata.gz: 0dc062e9b96728474290d66d65b1434abb4dda89c83004e30dcab3e59045427d260e779ba6117460c0357b13aa002a179c0175d6083e6d77308d2e0f19830624
7
+ data.tar.gz: 7115e84fda7ec09bb036ad13912c871780149ec91e5ccabfb30be2326e9781006270805767aa55e700d632e9766c00b884a7d5b9f13e9e88287dc9df59cc7453
@@ -1,9 +1,22 @@
1
1
  # Change log
2
2
 
3
3
  ## master (unreleased)
4
- ### Changed
4
+
5
+ ## 0.6.5 (2020-04-15)
6
+ ### Added
7
+ - multiple language version support.
8
+
9
+ ## 0.6.4 (2020-03-08)
10
+ ### Added
5
11
  - Modulo RegExp pattern.
6
- - Minor changes in ERBs.
12
+
13
+ ### Changed
14
+ - minor changes in ERBs.
15
+ - allow underscores in problem ID.
16
+ - allow whitespaces in data file path.
17
+
18
+ ### Deleted
19
+ - remove tasks folder from installation
7
20
 
8
21
  ## 0.6.3 (2020-01-05)
9
22
  ### Added
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- at_coder_friends (0.6.4)
4
+ at_coder_friends (0.6.5)
5
5
  colorize (~> 0.8.1)
6
6
  launchy (~> 2.4.3)
7
7
  mechanize (~> 2.0)
@@ -68,7 +68,7 @@ GEM
68
68
  unf (0.1.4)
69
69
  unf_ext
70
70
  unf_ext (0.0.7.6)
71
- webmock (3.8.2)
71
+ webmock (3.8.3)
72
72
  addressable (>= 2.3.6)
73
73
  crack (>= 0.3.2)
74
74
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -4,88 +4,162 @@ generators:
4
4
  - RubyBuiltin
5
5
  - CxxBuiltin
6
6
  ext_settings:
7
- 'awk':
8
- submit_lang: '3506' # Awk (mawk)
9
- 'bf':
10
- submit_lang: '3507' # Brainfuck
11
- 'c':
12
- submit_lang: '3002' # C (GCC)
7
+ 'awk': # Awk (mawk)
8
+ submit_lang:
9
+ - '4009'
10
+ - '3506'
11
+ 'bf': # Brainfuck
12
+ submit_lang:
13
+ - '4062'
14
+ - '3507'
15
+ 'c': # C (GCC)
16
+ submit_lang:
17
+ - '4001'
18
+ - '3002'
13
19
  test_cmd:
14
20
  default: '"{dir}/{base}"'
15
21
  windows: '"{dir}/{base}.exe"'
16
- 'cbl':
17
- submit_lang: '3526' # COBOL - Free
18
- 'clj':
19
- submit_lang: '3007' # Clojure
20
- 'cr':
21
- submit_lang: '3511' # Crystal
22
- 'cs':
23
- submit_lang: '3006' # C# (Mono)
22
+ 'cbl': # COBOL - Free
23
+ submit_lang:
24
+ - '4061'
25
+ - '3526'
26
+ 'clj': # Clojure
27
+ submit_lang:
28
+ - '4013'
29
+ - '3007'
30
+ 'cr': # Crystal
31
+ submit_lang:
32
+ - '4014'
33
+ - '3511'
34
+ 'cs': # C# (Mono-mcs)
35
+ submit_lang:
36
+ - '4011'
37
+ - '3006'
24
38
  test_cmd:
25
39
  default: 'mono "{dir}/{base}.exe"'
26
40
  windows: '"{dir}/{base}.exe"'
27
- 'cxx':
28
- submit_lang: '3003' # C++14 (GCC)
41
+ 'cxx': # C++ (GCC)
42
+ submit_lang:
43
+ - '4003'
44
+ - '3003'
29
45
  test_cmd:
30
46
  default: '"{dir}/{base}"'
31
47
  windows: '"{dir}/{base}.exe"'
32
- 'd':
33
- submit_lang: '3009' # D (DMD64)
34
- 'f90':
35
- submit_lang: '3012' # Fortran (gfortran)
36
- 'fs':
37
- submit_lang: '3512' # F# (Mono)
38
- 'go':
39
- submit_lang: '3013' # Go
40
- 'hs':
41
- submit_lang: '3014' # Haskell (GHC)
42
- 'java':
43
- submit_lang: '3016' # Java8 (OpenJDK)
48
+ 'd': # D (DMD64)
49
+ submit_lang:
50
+ - '4015'
51
+ - '3009'
52
+ 'dart': # Dart
53
+ submit_lang: '4018'
54
+ 'f90': # Fortran (gfortran)
55
+ submit_lang:
56
+ - '4025'
57
+ - '3012'
58
+ 'fs': # F# (Mono)
59
+ submit_lang:
60
+ - '4023'
61
+ - '3512'
62
+ 'go': # Go
63
+ submit_lang:
64
+ - '4026'
65
+ - '3013'
66
+ 'hs': # Haskell (GHC)
67
+ submit_lang:
68
+ - '4027'
69
+ - '3014'
70
+ 'java': # Java (OpenJDK)
71
+ submit_lang:
72
+ - '4005'
73
+ - '3016'
44
74
  test_cmd:
45
75
  default: 'java -cp "{dir}" Main'
46
- 'jl':
47
- submit_lang: '3518' # Julia
48
- 'js':
49
- submit_lang: '3017' # JavaScript (node.js)
50
- 'kt':
51
- submit_lang: '3523' # Kotlin
52
- 'lisp':
53
- submit_lang: '3008' # Common Lisp
54
- 'lua':
55
- submit_lang: '3515' # LuaJIT
56
- 'm':
57
- submit_lang: '3519' # Octave
58
- 'ml':
59
- submit_lang: '3018' # OCaml
60
- 'nim':
61
- submit_lang: '3520' # Nim
62
- 'pas':
63
- submit_lang: '3019' # Pascal (FPC)
64
- 'php':
65
- submit_lang: '3524' # PHP7
66
- 'pl':
67
- submit_lang: '3020' # Perl
68
- 'py':
69
- submit_lang: '3023' # Python3
70
- 'rb':
71
- submit_lang: '3024' # Ruby
76
+ 'jl': # Julia
77
+ submit_lang:
78
+ - '4031'
79
+ - '3518'
80
+ 'js': # JavaScript (node.js)
81
+ submit_lang:
82
+ - '4030'
83
+ - '3017'
84
+ 'kt': # Kotlin
85
+ submit_lang:
86
+ - '4032'
87
+ - '3523'
88
+ 'lisp': # Common Lisp
89
+ submit_lang:
90
+ - '4038'
91
+ - '3008'
92
+ 'lua': # LuaJIT
93
+ submit_lang:
94
+ - '4034'
95
+ - '3515'
96
+ 'm': # Octave
97
+ submit_lang:
98
+ - '4040'
99
+ - '3519'
100
+ 'ml': # OCaml
101
+ submit_lang:
102
+ - '4039'
103
+ - '3018'
104
+ 'nim': # Nim
105
+ submit_lang:
106
+ - '4036'
107
+ - '3520'
108
+ 'pas': # Pascal (FPC)
109
+ submit_lang:
110
+ - '4041'
111
+ - '3019'
112
+ 'php': # PHP7
113
+ submit_lang:
114
+ - '4044'
115
+ - '3524'
116
+ 'pl': # Perl
117
+ submit_lang:
118
+ - '4042'
119
+ - '3020'
120
+ 'py': # Python3
121
+ submit_lang:
122
+ - '4006'
123
+ - '3023'
124
+ 'rb': # Ruby
125
+ submit_lang:
126
+ - '4049'
127
+ - '3024'
72
128
  test_cmd:
73
129
  default: 'ruby "{dir}/{base}.rb"'
74
- 'rs':
75
- submit_lang: '3504' # Rust
76
- 'scala':
77
- submit_lang: '3025' # Scala
78
- 'scm':
79
- submit_lang: '3026' # Scheme (Gauche)
80
- 'sed':
81
- submit_lang: '3505' # Sed (GNU sed)
82
- 'sh':
83
- submit_lang: '3001' # Bash (GNU bash)
84
- 'swift':
85
- submit_lang: '3503' # Swift
86
- 'ts':
87
- submit_lang: '3521' # TypeScript
88
- 'txt':
89
- submit_lang: '3027' # Text (cat)
90
- 'vb':
91
- submit_lang: '3028' # Visual Basic (Mono)
130
+ 'rs': # Rust
131
+ submit_lang:
132
+ - '4050'
133
+ - '3504'
134
+ 'scala': # Scala
135
+ submit_lang:
136
+ - '4051'
137
+ - '3025'
138
+ 'scm': # Scheme (Gauche)
139
+ submit_lang:
140
+ - '4053'
141
+ - '3026'
142
+ 'sed': # Sed (GNU sed)
143
+ submit_lang:
144
+ - '4066'
145
+ - '3505'
146
+ 'sh': # Bash (GNU bash)
147
+ submit_lang:
148
+ - '4007'
149
+ - '3001'
150
+ 'swift': # Swift
151
+ submit_lang:
152
+ - '4055'
153
+ - '3503'
154
+ 'ts': # TypeScript
155
+ submit_lang:
156
+ - '4057'
157
+ - '3521'
158
+ 'txt': # Text (cat)
159
+ submit_lang:
160
+ - '4056'
161
+ - '3027'
162
+ 'vb': # Visual Basic (Mono)
163
+ submit_lang:
164
+ - '4058'
165
+ - '3028'
@@ -29,91 +29,165 @@ generators:
29
29
  - RubyBuiltin
30
30
  - CxxBuiltin
31
31
  ext_settings:
32
- 'awk':
33
- submit_lang: '3506' # Awk (mawk)
34
- 'bf':
35
- submit_lang: '3507' # Brainfuck
36
- 'c':
37
- submit_lang: '3002' # C (GCC)
32
+ 'awk': # Awk (mawk)
33
+ submit_lang:
34
+ - '4009'
35
+ - '3506'
36
+ 'bf': # Brainfuck
37
+ submit_lang:
38
+ - '4062'
39
+ - '3507'
40
+ 'c': # C (GCC)
41
+ submit_lang:
42
+ - '4001'
43
+ - '3002'
38
44
  test_cmd:
39
45
  default: '"{dir}/{base}"'
40
46
  windows: '"{dir}/{base}.exe"'
41
- 'cbl':
42
- submit_lang: '3526' # COBOL - Free
43
- 'clj':
44
- submit_lang: '3007' # Clojure
45
- 'cr':
46
- submit_lang: '3511' # Crystal
47
- 'cs':
48
- submit_lang: '3006' # C# (Mono)
47
+ 'cbl': # COBOL - Free
48
+ submit_lang:
49
+ - '4061'
50
+ - '3526'
51
+ 'clj': # Clojure
52
+ submit_lang:
53
+ - '4013'
54
+ - '3007'
55
+ 'cr': # Crystal
56
+ submit_lang:
57
+ - '4014'
58
+ - '3511'
59
+ 'cs': # C# (Mono-mcs)
60
+ submit_lang:
61
+ - '4011'
62
+ - '3006'
49
63
  test_cmd:
50
64
  default: 'mono "{dir}/{base}.exe"'
51
65
  windows: '"{dir}/{base}.exe"'
52
- 'cxx':
53
- submit_lang: '3003' # C++14 (GCC)
66
+ 'cxx': # C++ (GCC)
67
+ submit_lang:
68
+ - '4003'
69
+ - '3003'
54
70
  test_cmd:
55
71
  default: '"{dir}/{base}"'
56
72
  windows: '"{dir}/{base}.exe"'
57
- 'd':
58
- submit_lang: '3009' # D (DMD64)
59
- 'f90':
60
- submit_lang: '3012' # Fortran (gfortran)
61
- 'fs':
62
- submit_lang: '3512' # F# (Mono)
63
- 'go':
64
- submit_lang: '3013' # Go
65
- 'hs':
66
- submit_lang: '3014' # Haskell (GHC)
67
- 'java':
68
- submit_lang: '3016' # Java8 (OpenJDK)
73
+ 'd': # D (DMD64)
74
+ submit_lang:
75
+ - '4015'
76
+ - '3009'
77
+ 'dart': # Dart
78
+ submit_lang: '4018'
79
+ 'f90': # Fortran (gfortran)
80
+ submit_lang:
81
+ - '4025'
82
+ - '3012'
83
+ 'fs': # F# (Mono)
84
+ submit_lang:
85
+ - '4023'
86
+ - '3512'
87
+ 'go': # Go
88
+ submit_lang:
89
+ - '4026'
90
+ - '3013'
91
+ 'hs': # Haskell (GHC)
92
+ submit_lang:
93
+ - '4027'
94
+ - '3014'
95
+ 'java': # Java (OpenJDK)
96
+ submit_lang:
97
+ - '4005'
98
+ - '3016'
69
99
  test_cmd:
70
100
  default: 'java -cp "{dir}" Main'
71
- 'jl':
72
- submit_lang: '3518' # Julia
73
- 'js':
74
- submit_lang: '3017' # JavaScript (node.js)
75
- 'kt':
76
- submit_lang: '3523' # Kotlin
77
- 'lisp':
78
- submit_lang: '3008' # Common Lisp
79
- 'lua':
80
- submit_lang: '3515' # LuaJIT
81
- 'm':
82
- submit_lang: '3519' # Octave
83
- 'ml':
84
- submit_lang: '3018' # OCaml
85
- 'nim':
86
- submit_lang: '3520' # Nim
87
- 'pas':
88
- submit_lang: '3019' # Pascal (FPC)
89
- 'php':
90
- submit_lang: '3524' # PHP7
91
- 'pl':
92
- submit_lang: '3020' # Perl
93
- 'py':
94
- submit_lang: '3023' # Python3
95
- 'rb':
96
- submit_lang: '3024' # Ruby
101
+ 'jl': # Julia
102
+ submit_lang:
103
+ - '4031'
104
+ - '3518'
105
+ 'js': # JavaScript (node.js)
106
+ submit_lang:
107
+ - '4030'
108
+ - '3017'
109
+ 'kt': # Kotlin
110
+ submit_lang:
111
+ - '4032'
112
+ - '3523'
113
+ 'lisp': # Common Lisp
114
+ submit_lang:
115
+ - '4038'
116
+ - '3008'
117
+ 'lua': # LuaJIT
118
+ submit_lang:
119
+ - '4034'
120
+ - '3515'
121
+ 'm': # Octave
122
+ submit_lang:
123
+ - '4040'
124
+ - '3519'
125
+ 'ml': # OCaml
126
+ submit_lang:
127
+ - '4039'
128
+ - '3018'
129
+ 'nim': # Nim
130
+ submit_lang:
131
+ - '4036'
132
+ - '3520'
133
+ 'pas': # Pascal (FPC)
134
+ submit_lang:
135
+ - '4041'
136
+ - '3019'
137
+ 'php': # PHP7
138
+ submit_lang:
139
+ - '4044'
140
+ - '3524'
141
+ 'pl': # Perl
142
+ submit_lang:
143
+ - '4042'
144
+ - '3020'
145
+ 'py': # Python3
146
+ submit_lang:
147
+ - '4006'
148
+ - '3023'
149
+ 'rb': # Ruby
150
+ submit_lang:
151
+ - '4049'
152
+ - '3024'
97
153
  test_cmd:
98
154
  default: 'ruby "{dir}/{base}.rb"'
99
- 'rs':
100
- submit_lang: '3504' # Rust
101
- 'scala':
102
- submit_lang: '3025' # Scala
103
- 'scm':
104
- submit_lang: '3026' # Scheme (Gauche)
105
- 'sed':
106
- submit_lang: '3505' # Sed (GNU sed)
107
- 'sh':
108
- submit_lang: '3001' # Bash (GNU bash)
109
- 'swift':
110
- submit_lang: '3503' # Swift
111
- 'ts':
112
- submit_lang: '3521' # TypeScript
113
- 'txt':
114
- submit_lang: '3027' # Text (cat)
115
- 'vb':
116
- submit_lang: '3028' # Visual Basic (Mono)
155
+ 'rs': # Rust
156
+ submit_lang:
157
+ - '4050'
158
+ - '3504'
159
+ 'scala': # Scala
160
+ submit_lang:
161
+ - '4051'
162
+ - '3025'
163
+ 'scm': # Scheme (Gauche)
164
+ submit_lang:
165
+ - '4053'
166
+ - '3026'
167
+ 'sed': # Sed (GNU sed)
168
+ submit_lang:
169
+ - '4066'
170
+ - '3505'
171
+ 'sh': # Bash (GNU bash)
172
+ submit_lang:
173
+ - '4007'
174
+ - '3001'
175
+ 'swift': # Swift
176
+ submit_lang:
177
+ - '4055'
178
+ - '3503'
179
+ 'ts': # TypeScript
180
+ submit_lang:
181
+ - '4057'
182
+ - '3521'
183
+ 'txt': # Text (cat)
184
+ submit_lang:
185
+ - '4056'
186
+ - '3027'
187
+ 'vb': # Visual Basic (Mono)
188
+ submit_lang:
189
+ - '4058'
190
+ - '3028'
117
191
  ```
118
192
 
119
193
  ## Configuration options
@@ -205,7 +279,7 @@ ext_settings:
205
279
  |---------|-------------|---------|
206
280
  |default_template|Source template file path|[/templates/cxx_builtin.cxx.erb](/templates/cxx_builtin.cxx.erb)|
207
281
 
208
- ### Language ID list (2019/09/16)
282
+ ### Language ID list (2020/04/14)
209
283
 
210
284
  | Language ID | Description |
211
285
  |-------------|-------------|
@@ -265,6 +339,74 @@ ext_settings:
265
339
  |3524|PHP7 (7.0.15)|
266
340
  |3525|COBOL - Fixed (OpenCOBOL 1.1.0)|
267
341
  |3526|COBOL - Free (OpenCOBOL 1.1.0)|
342
+ |4001|C (GCC 9.2.1)|
343
+ |4002|C (Clang 10.0.0)|
344
+ |4003|C++ (GCC 9.2.1)|
345
+ |4004|C++ (Clang 10.0.0)|
346
+ |4005|Java (OpenJDK 11.0.6)|
347
+ |4006|Python (3.8.2)|
348
+ |4007|Bash (5.0.11)|
349
+ |4008|bc (1.07.1)|
350
+ |4009|Awk (GNU Awk 4.1.4)|
351
+ |4010|C# (.NET Core 3.1.201)|
352
+ |4011|C# (Mono-mcs 6.8.0.105)|
353
+ |4012|C# (Mono-csc 3.5.0)|
354
+ |4013|Clojure (1.10.1.536)|
355
+ |4014|Crystal (0.33.0)|
356
+ |4015|D (DMD 2.091.0)|
357
+ |4016|D (GDC 9.2.1)|
358
+ |4017|D (LDC 1.20.1)|
359
+ |4018|Dart (2.7.2)|
360
+ |4019|dc (1.4.1)|
361
+ |4020|Erlang (22.3)|
362
+ |4021|Elixir (1.10.2)|
363
+ |4022|F# (.NET Core 3.1.201)|
364
+ |4023|F# (Mono 10.2.3)|
365
+ |4024|Forth (gforth 0.7.3)|
366
+ |4025|Fortran(GNU Fortran 9.2.1)|
367
+ |4026|Go (1.14.1)|
368
+ |4027|Haskell (GHC 8.8.3)|
369
+ |4028|Haxe (4.0.3); js|
370
+ |4029|Haxe (4.0.3); Java|
371
+ |4030|JavaScript (Node.js 12.16.1)|
372
+ |4031|Julia (1.4.0)|
373
+ |4032|Kotlin (1.3.71)|
374
+ |4033|Lua (Lua 5.3.5)|
375
+ |4034|Lua (LuaJIT 2.1.0)|
376
+ |4035|Dash (0.5.8)|
377
+ |4036|Nim (1.0.6)|
378
+ |4037|Objective-C (Clang 10.0.0)|
379
+ |4038|Common Lisp (SBCL 2.0.3)|
380
+ |4039|OCaml (4.10.0)|
381
+ |4040|Octave (5.2.0)|
382
+ |4041|Pascal (FPC 3.0.4)|
383
+ |4042|Perl (5.26.1)|
384
+ |4043|Raku (Rakudo 2020.02.1)|
385
+ |4044|PHP (7.4.4)|
386
+ |4045|Prolog (SWI-Prolog 8.0.3)|
387
+ |4046|PyPy2 (7.3.0)|
388
+ |4047|PyPy3 (7.3.0)|
389
+ |4048|Racket (7.6)|
390
+ |4049|Ruby (2.7.1)|
391
+ |4050|Rust (1.42.0)|
392
+ |4051|Scala (2.13.1)|
393
+ |4052|Java (OpenJDK 1.8.0)|
394
+ |4053|Scheme (Gauche 0.9.9)|
395
+ |4054|Standard ML (MLton 20130715)|
396
+ |4055|Swift (5.2.1)|
397
+ |4056|Text (cat 8.28)|
398
+ |4057|TypeScript (3.8)|
399
+ |4058|Visual Basic (.NET Core 3.1.101)|
400
+ |4059|Zsh (5.4.2)|
401
+ |4060|COBOL - Fixed (OpenCOBOL 1.1.0)|
402
+ |4061|COBOL - Free (OpenCOBOL 1.1.0)|
403
+ |4062|Brainfuck (bf 20041219)|
404
+ |4063|Ada2012 (GNAT 9.2.1)|
405
+ |4064|Unlambda (2.0.0)|
406
+ |4065|Cython (0.29.16)|
407
+ |4066|Sed (4.4)|
408
+ |4067|Vim (8.2.0460)|
409
+
268
410
 
269
411
  ### Variables in test_cmd string
270
412
 
@@ -40,6 +40,10 @@ module AtCoderFriends
40
40
  end
41
41
 
42
42
  def lang_id(ext)
43
+ [lang_id_conf(ext)].flatten
44
+ end
45
+
46
+ def lang_id_conf(ext)
43
47
  ctx.config.dig('ext_settings', ext, 'submit_lang') || (
44
48
  msg = <<~MSG
45
49
  submit_lang for .#{ext} is not specified.
@@ -50,6 +54,12 @@ module AtCoderFriends
50
54
  )
51
55
  end
52
56
 
57
+ def find_lang(page, langs)
58
+ langs.find do |lng|
59
+ page.search("div#select-lang select option[value=#{lng}]")[0]
60
+ end || langs[0]
61
+ end
62
+
53
63
  def lang_list_txt
54
64
  lang_list
55
65
  &.map { |opt| "#{opt[:v]} - #{opt[:t]}" }
@@ -8,16 +8,17 @@ module AtCoderFriends
8
8
  module CustomTest
9
9
  def code_test(infile)
10
10
  path, _dir, _prg, _base, ext, _q = ctx.path_info.components
11
- lang = lang_id(ext)
11
+ langs = lang_id(ext)
12
12
  src = File.read(path, encoding: Encoding::UTF_8)
13
13
  data = File.read(infile)
14
14
 
15
- post_custom_test(lang, src, data)
15
+ post_custom_test(langs, src, data)
16
16
  check_custom_test
17
17
  end
18
18
 
19
- def post_custom_test(lang, src, data)
19
+ def post_custom_test(langs, src, data)
20
20
  page = fetch_with_auth(contest_url('custom_test'))
21
+ lang = find_lang(page, langs)
21
22
  script = page.search('script').text
22
23
  csrf_token = script.scan(/var csrfToken = "(.*)"/)[0][0]
23
24
 
@@ -7,14 +7,15 @@ module AtCoderFriends
7
7
  def submit
8
8
  path, _dir, prg, _base, ext, q = ctx.path_info.components
9
9
  puts "***** submit #{prg} *****"
10
- lang = lang_id(ext)
10
+ langs = lang_id(ext)
11
11
  src = File.read(path, encoding: Encoding::UTF_8)
12
12
 
13
- post_submit(q, lang, src)
13
+ post_submit(q, langs, src)
14
14
  end
15
15
 
16
- def post_submit(q, lang, src)
16
+ def post_submit(q, langs, src)
17
17
  page = fetch_with_auth(contest_url('submit'))
18
+ lang = find_lang(page, langs)
18
19
  form = page.forms[1]
19
20
  form.field_with(name: 'data.TaskScreenName') do |sel|
20
21
  option = sel.options.find { |op| op.text.start_with?(q) }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AtCoderFriends
4
- VERSION = '0.6.4'
4
+ VERSION = '0.6.5'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: at_coder_friends
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - nejiko96
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-07 00:00:00.000000000 Z
11
+ date: 2020-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize