sportdb-readers 0.4.5 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +3 -3
- data/lib/sportdb/readers/conf_parser_auto.rb +8 -5
- data/lib/sportdb/readers/version.rb +1 -1
- data/test/test_conf_parser_auto.rb +145 -24
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2ef30f6dc1204b1df60614e54b168559f825eea
|
4
|
+
data.tar.gz: 3018c5e2286a33d4e61e52dec18c19d7fe270963
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 933b31be66b7b556d9f8704b413243d30106d199dd0338ecc8aa7beb86e2058b8498741d5ddb0266ab658597fbf11ff01c6a48a80dd77d06909af605c6c8810d
|
7
|
+
data.tar.gz: 98519ae33ae7f29b24e7dcf99ad8dd5cc5ade378faac6ea1834bacc99491910634488f18f03f30a5f06b2a783ce679d418cc1974dee7ae3ed8d73c44336a1def
|
data/Rakefile
CHANGED
@@ -20,9 +20,9 @@ Hoe.spec 'sportdb-readers' do
|
|
20
20
|
self.licenses = ['Public Domain']
|
21
21
|
|
22
22
|
self.extra_deps = [
|
23
|
-
['sportdb-config', '>= 0.
|
24
|
-
['sportdb-models', '>= 1.18.
|
25
|
-
['sportdb-sync', '>= 0.0
|
23
|
+
['sportdb-config', '>= 0.9.0'],
|
24
|
+
['sportdb-models', '>= 1.18.4'],
|
25
|
+
['sportdb-sync', '>= 0.1.0'],
|
26
26
|
]
|
27
27
|
|
28
28
|
self.spec_extras = {
|
@@ -81,11 +81,11 @@ class AutoConfParser
|
|
81
81
|
\]/x, '' ).strip
|
82
82
|
|
83
83
|
else
|
84
|
-
## check for leading hours only e.g. 20.30 or 20:30 or 20h30
|
84
|
+
## check for leading hours only e.g. 20.30 or 20:30 or 20h30 or 20H30 or 09h00
|
85
85
|
## todo/fix: make language dependent (or move to find_date/hour etc.) - why? why not?
|
86
|
-
line = line.sub( %r{^
|
87
|
-
[
|
88
|
-
[
|
86
|
+
line = line.sub( %r{^ ## MUST be anchored to beginning of line
|
87
|
+
[012]?[0-9]
|
88
|
+
[.:hH]
|
89
89
|
[0-9][0-9]
|
90
90
|
(?=[ ]) ## must be followed by space for now (add end of line too - why? why not?)
|
91
91
|
}x, '' ).strip
|
@@ -113,7 +113,10 @@ class AutoConfParser
|
|
113
113
|
|
114
114
|
## check for more match separators e.g. - or vs for now
|
115
115
|
line = line.sub( / \s+
|
116
|
-
(
|
116
|
+
( -
|
117
|
+
| v
|
118
|
+
| vs\.? # note: allow optional dot eg. vs.
|
119
|
+
)
|
117
120
|
\s+
|
118
121
|
/ix, '$$' )
|
119
122
|
|
@@ -8,32 +8,153 @@
|
|
8
8
|
require 'helper'
|
9
9
|
|
10
10
|
|
11
|
-
|
12
11
|
class TestAutoConfParser < MiniTest::Test
|
13
12
|
|
13
|
+
def test_mx
|
14
|
+
txt= <<TXT
|
15
|
+
Jornada 1 // 3, 4 y 5 de enero
|
16
|
+
|
17
|
+
Vie 3 Ene Monarcas Morelia vs. Querétaro @ Estadio Morelos
|
18
|
+
Vie 3 Ene Santos Laguna vs. Guadalajara @ Estadio Corona TSM
|
19
|
+
Sáb 4 Ene América vs. Tigres UANL @ Estadio Azteca
|
20
|
+
Sáb 4 Ene Monterrey vs. Cruz Azul @ Estadio Tecnológico
|
21
|
+
Sáb 4 Ene Pachuca vs. Toluca @ Estadio Hidalgo
|
22
|
+
Sáb 4 Ene Jaguares de Chiapas vs. Veracruz @ Estadio Víctor M. Reyna
|
23
|
+
Sáb 4 Ene Atlas vs. Tijuana @ Estadio Jalisco
|
24
|
+
Dom 5 Ene Universidad Nacional vs. Puebla @ Estadio Olímpico Universitario
|
25
|
+
Dom 5 Ene Atlante vs. León @ Estadio Andrés Quintana Roo
|
26
|
+
|
27
|
+
Jornada 2 // 10, 11 y 12 de enero
|
28
|
+
|
29
|
+
Vie 10 Ene Querétaro vs. Universidad Nacional @ Estadio La Corregidora
|
30
|
+
Vie 10 Ene Tijuana vs. América @ Estadio Caliente
|
31
|
+
Sáb 11 Ene Veracruz vs. Atlante @ Estadio Luis Pirata Fuente
|
32
|
+
Sáb 11 Ene Cruz Azul vs. Santos Laguna @ Estadio Azul
|
33
|
+
Sáb 11 Ene Tigres UANL vs. Pachuca @ Estadio Universitario
|
34
|
+
Sáb 11 Ene León vs. Atlas @ Estadio Nou Camp
|
35
|
+
Dom 12 Ene Puebla vs. Monterrey @ Estadio Cuauhtémoc
|
36
|
+
Dom 12 Ene Toluca vs. Monarcas Morelia @ Estadio Nemesio Díez
|
37
|
+
Dom 12 Ene Guadalajara vs. Jaguares de Chiapas @ Estadio Omnilife
|
38
|
+
TXT
|
39
|
+
clubs, rounds = parse( txt, lang: 'es' )
|
40
|
+
|
41
|
+
assert_equal Hash(
|
42
|
+
'Monarcas Morelia'=>2,
|
43
|
+
'Querétaro'=>2,
|
44
|
+
'Santos Laguna'=>2,
|
45
|
+
'Guadalajara'=>2,
|
46
|
+
'América'=>2,
|
47
|
+
'Tigres UANL'=>2,
|
48
|
+
'Monterrey'=>2,
|
49
|
+
'Cruz Azul'=>2,
|
50
|
+
'Pachuca'=>2,
|
51
|
+
'Toluca'=>2,
|
52
|
+
'Jaguares de Chiapas'=>2,
|
53
|
+
'Veracruz'=>2,
|
54
|
+
'Atlas'=>2,
|
55
|
+
'Tijuana'=>2,
|
56
|
+
'Universidad Nacional'=>2,
|
57
|
+
'Puebla'=>2,
|
58
|
+
'Atlante'=>2,
|
59
|
+
'León'=>2 ), clubs
|
60
|
+
|
61
|
+
assert_equal Hash(
|
62
|
+
'Jornada 1 // 3, 4 y 5 de enero' => { count: 1, match_count: 9},
|
63
|
+
'Jornada 2 // 10, 11 y 12 de enero' => { count: 1, match_count: 9} ), rounds
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_br
|
67
|
+
txt= <<TXT
|
68
|
+
1ª Rodada
|
69
|
+
29/03/2003 - Sábado
|
70
|
+
16h00 Guarani 4x2 Vasco @ Brinco de Ouro
|
71
|
+
Atlético-PR 2x0 Grêmio @ Arena da Baixada
|
72
|
+
|
73
|
+
30/03/2003 - Domingo
|
74
|
+
09h00 Flamengo 1x1 Coritiba @ Maracanã
|
75
|
+
16h00 Goiás 2x2 Paysandu @ Serra Dourada
|
76
|
+
Internacional 1x1 Ponte Preta @ Beira Rio
|
77
|
+
Criciúma 2x0 Fluminense @ Heriberto Hulse
|
78
|
+
Juventude 2x2 São Paulo @ Alfredo Jaconi
|
79
|
+
Fortaleza 0x0 Bahia @ Castelão
|
80
|
+
Cruzeiro 2x2 São Caetano @ Mineirão
|
81
|
+
Vitória 1x1 Figueirense @ Barradão
|
82
|
+
18h00 Santos 2x2 Paraná @ Vila Belmiro
|
83
|
+
Corinthians 0x3 Atlético-MG @ Pacaembu
|
84
|
+
|
85
|
+
2ª Rodada
|
86
|
+
05/04/2003 - Sábado
|
87
|
+
16h00 Fluminense 1x1 Fortaleza @ Maracanã
|
88
|
+
Atlético-MG 0x0 Santos @ Mineirão
|
89
|
+
Coritiba 0x1 Internacional @ Couto Pereira
|
90
|
+
18h00 Grêmio 3x1 Guarani @ Olímpico
|
91
|
+
|
92
|
+
06/04/2003 - Domingo
|
93
|
+
16h00 Bahia 1x2 Flamengo @ Fonte Nova
|
94
|
+
Figueirense 3x3 Corinthians @ Orlando Scarpelli
|
95
|
+
Paysandu 1x2 Vitória @ Mangueirão
|
96
|
+
Ponte Preta 1x0 Juventude @ Moisés Lucarelli
|
97
|
+
Paraná 3x0 Atlético-PR @ Pinheirão
|
98
|
+
São Caetano 3x2 Criciúma @ Anacleto Campanella
|
99
|
+
18h00 São Paulo 2x4 Cruzeiro @ Morumbi
|
100
|
+
Vasco 6x4 Goiás @ São Januário
|
101
|
+
TXT
|
102
|
+
clubs, rounds = parse( txt, lang: 'pt' )
|
103
|
+
|
104
|
+
assert_equal Hash(
|
105
|
+
'Guarani'=>2,
|
106
|
+
'Vasco'=>2,
|
107
|
+
'Atlético-PR'=>2,
|
108
|
+
'Grêmio'=>2,
|
109
|
+
'Flamengo'=>2,
|
110
|
+
'Coritiba'=>2,
|
111
|
+
'Goiás'=>2,
|
112
|
+
'Paysandu'=>2,
|
113
|
+
'Internacional'=>2,
|
114
|
+
'Ponte Preta'=>2,
|
115
|
+
'Criciúma'=>2,
|
116
|
+
'Fluminense'=>2,
|
117
|
+
'Juventude'=>2,
|
118
|
+
'São Paulo'=>2,
|
119
|
+
'Fortaleza'=>2,
|
120
|
+
'Bahia'=>2,
|
121
|
+
'Cruzeiro'=>2,
|
122
|
+
'São Caetano'=>2,
|
123
|
+
'Vitória'=>2,
|
124
|
+
'Figueirense'=>2,
|
125
|
+
'Santos'=>2,
|
126
|
+
'Paraná'=>2,
|
127
|
+
'Corinthians'=>2,
|
128
|
+
'Atlético-MG'=>2 ), clubs
|
129
|
+
|
130
|
+
assert_equal Hash(
|
131
|
+
'1ª Rodada' => {count: 1, match_count: 12},
|
132
|
+
'2ª Rodada' => {count: 1, match_count: 12} ), rounds
|
133
|
+
end
|
134
|
+
|
135
|
+
|
14
136
|
def test_at
|
15
137
|
txt = <<TXT
|
16
138
|
29. Runde
|
17
139
|
|
18
|
-
|
140
|
+
Sa 7.4.
|
19
141
|
16.00 RB Salzburg 2:0 Wacker Innsbruck
|
20
142
|
18.30 SV Ried 0:1 Austria Wien
|
21
143
|
Kapfenberger SV 2:3 Admira Wacker
|
22
144
|
Rapid Wien 2:1 Wr. Neustadt
|
23
|
-
|
145
|
+
So 8.4.
|
24
146
|
16.00 SV Mattersburg 0:2 Sturm Graz
|
25
147
|
|
26
148
|
|
27
149
|
30. Runde
|
28
150
|
|
29
|
-
|
151
|
+
Sa 14.4.
|
30
152
|
16.00 Wr. Neustadt 0:0 Kapfenberger SV
|
31
153
|
18.30 Admira Wacker 1:1 Wacker Innsbruck
|
32
154
|
Sturm Graz 2:2 RB Salzburg
|
33
155
|
SV Ried 2:0 SV Mattersburg
|
34
|
-
|
156
|
+
So 15.4.
|
35
157
|
16.00 Austria Wien 0:0 Rapid Wien
|
36
|
-
|
37
158
|
TXT
|
38
159
|
|
39
160
|
clubs, rounds = parse( txt, lang: 'de' )
|
@@ -119,9 +240,9 @@ TXT
|
|
119
240
|
txt = <<TXT
|
120
241
|
Journée 1
|
121
242
|
|
122
|
-
|
243
|
+
Ven 8. Août
|
123
244
|
20h30 Stade de Reims 2-2 Paris SG
|
124
|
-
|
245
|
+
Sam 9. Août
|
125
246
|
21h00 SC Bastia 3-3 Olympique de Marseille
|
126
247
|
Évian TG 0-3 SM Caen
|
127
248
|
EA Guingamp 0-2 AS Saint-Étienne
|
@@ -129,22 +250,22 @@ Journée 1
|
|
129
250
|
Montpellier Hérault SC 0-1 Girondins de Bordeaux
|
130
251
|
FC Nantes 1-0 RC Lens
|
131
252
|
OGC Nice 3-2 Toulouse FC
|
132
|
-
|
253
|
+
Dim 10. Août
|
133
254
|
17h00 Olympique Lyonnais 2-0 Stade Rennais FC
|
134
255
|
21h00 AS Monaco FC 1-2 FC Lorient
|
135
256
|
|
136
257
|
Journée 2
|
137
258
|
|
138
|
-
|
259
|
+
Ven 15. Août
|
139
260
|
20h30 SM Caen 0-1 LOSC Lille
|
140
|
-
|
261
|
+
Sam 16. Août
|
141
262
|
17h00 Paris SG 2-0 SC Bastia
|
142
263
|
20h00 RC Lens 0-1 EA Guingamp
|
143
264
|
FC Lorient 0-0 OGC Nice
|
144
265
|
FC Metz 1-1 FC Nantes
|
145
266
|
Stade Rennais FC 6-2 Évian TG
|
146
267
|
Toulouse FC 2-1 Olympique Lyonnais
|
147
|
-
|
268
|
+
Dim 17. Août
|
148
269
|
17h00 Olympique de Marseille 0-2 Montpellier Hérault SC
|
149
270
|
AS Saint-Étienne 3-1 Stade de Reims
|
150
271
|
21h00 Girondins de Bordeaux 4-1 AS Monaco FC
|
@@ -184,9 +305,9 @@ TXT
|
|
184
305
|
txt = <<TXT
|
185
306
|
Matchday 1
|
186
307
|
|
187
|
-
|
308
|
+
Fri, Aug 11
|
188
309
|
Arsenal FC 4-3 Leicester City
|
189
|
-
|
310
|
+
Sat, Aug 12
|
190
311
|
Watford FC 3-3 Liverpool FC
|
191
312
|
Chelsea FC 2-3 Burnley FC
|
192
313
|
Crystal Palace 0-3 Huddersfield Town
|
@@ -194,14 +315,14 @@ Matchday 1
|
|
194
315
|
Southampton FC 0-0 Swansea City
|
195
316
|
West Bromwich Albion 1-0 AFC Bournemouth
|
196
317
|
Brighton & Hove Albion 0-2 Manchester City
|
197
|
-
|
318
|
+
Sun, Aug 13
|
198
319
|
Newcastle United 0-2 Tottenham Hotspur
|
199
320
|
Manchester United 4-0 West Ham United
|
200
321
|
|
201
322
|
|
202
323
|
Matchday 2
|
203
324
|
|
204
|
-
|
325
|
+
Sat, Aug 19
|
205
326
|
Swansea City 0-4 Manchester United
|
206
327
|
AFC Bournemouth 0-2 Watford FC
|
207
328
|
Burnley FC 0-1 West Bromwich Albion
|
@@ -209,10 +330,10 @@ Matchday 2
|
|
209
330
|
Liverpool FC 1-0 Crystal Palace
|
210
331
|
Southampton FC 3-2 West Ham United
|
211
332
|
Stoke City 1-0 Arsenal FC
|
212
|
-
|
333
|
+
Sun, Aug 20
|
213
334
|
Huddersfield Town 1-0 Newcastle United
|
214
335
|
Tottenham Hotspur 1-2 Chelsea FC
|
215
|
-
|
336
|
+
Mon, Aug 21
|
216
337
|
Manchester City 1-1 Everton FC
|
217
338
|
TXT
|
218
339
|
|
@@ -305,25 +426,25 @@ TXT
|
|
305
426
|
def test_mauritius
|
306
427
|
txt = <<TXT
|
307
428
|
Preliminary Round
|
308
|
-
|
429
|
+
Mon Jun 22
|
309
430
|
Pointe-aux-Sables Mates 3-4 AS Port-Louis 2000 @ St. François Xavier Stadium, Port Louis
|
310
431
|
|
311
432
|
Quarterfinals
|
312
|
-
|
433
|
+
Wed Jun 24
|
313
434
|
Rivière du Rempart 3-1 pen (1-1) La Cure Sylvester @ Auguste Vollaire Stadium, Central Flacq
|
314
435
|
Chamarel SC 3-4 Petite Rivière Noire @ Germain Comarmond Stadium, Bambous
|
315
|
-
|
436
|
+
Thu Jun 25
|
316
437
|
Pamplemousses 2-0 AS Port-Louis 2000 @ Auguste Vollaire Stadium, Central Flacq
|
317
|
-
|
438
|
+
Sat Jun 27
|
318
439
|
Savanne SC 3-6 Entente Boulet Rouge @ Anjalay Stadium, Mapou
|
319
440
|
|
320
441
|
Semifinals
|
321
|
-
|
442
|
+
Wed Jul 15
|
322
443
|
Rivière du Rempart 2-3 Petite Rivière Noire @ New George V Stadium, Curepipe
|
323
444
|
Entente Boulet Rouge 0-2 Pamplemousses @ Germain Comarmond Stadium, Bambous
|
324
445
|
|
325
446
|
Final
|
326
|
-
|
447
|
+
Sun Jul 19
|
327
448
|
Petite Rivière Noire 2-0 Pamplemousses @ New George V Stadium, Curepipe
|
328
449
|
TXT
|
329
450
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sportdb-readers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sportdb-config
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.9.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
|
-
version: 0.
|
26
|
+
version: 0.9.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sportdb-models
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.18.
|
33
|
+
version: 1.18.4
|
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
|
-
version: 1.18.
|
40
|
+
version: 1.18.4
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sportdb-sync
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.0
|
47
|
+
version: 0.1.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
|
-
version: 0.0
|
54
|
+
version: 0.1.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rdoc
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|