sportdb-readers 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 935075d2b41927e37e8ccf597d5b3f0dee8e7009
4
- data.tar.gz: 5d0e4a742fd769021d9272e6401d1584acfac367
3
+ metadata.gz: d00cca5fea7e84fd30f67fc79ecf764ce1e900c0
4
+ data.tar.gz: 8a10004745355d8aeaa98ba4d765a05e17a812ba
5
5
  SHA512:
6
- metadata.gz: af375d0924b115d0ba81bc6b4f52a6e5d4af672c40a56bf922d83fcad4fb57bf8fd16a5cda304f6dff4f34b07c49e23088dd4dc160e0c6336ca02525b5481068
7
- data.tar.gz: 3416642226590a5448c4a8f094f3db2e85693d37e0aeda5dff901ca0888977346af99ba9450fe9035cc31c395768d35c6fd13e42bedf6637685f0cea3bd60104
6
+ metadata.gz: f654094b67436cce1f8931416ca088b263ef1e6e410e1252ef255938ada337449d960300d258adcbe5604af5194339413d008dd7aad6782b12c0c049548e88cf
7
+ data.tar.gz: 2b7382754ead0df285a33b7fa7f7993fdbfe93dea386c013ad7c81ded6282a0b2382c9becf93fe7e91f15998cb4b46df59120dcd340a82d742e81412ebe60b0e
@@ -22,19 +22,26 @@ class AutoConfParser
22
22
 
23
23
  def parse
24
24
  ## try to find all clubs in match schedule
25
- @clubs = Hash.new(0) ## keep track of usage counter
25
+ @last_round = nil
26
+ @rounds = {} ## track usage counter and match (two clubs) counter
27
+ @clubs = Hash.new(0) ## keep track of usage counter
28
+
26
29
 
27
30
  @lines.each do |line|
28
31
  if is_round?( line )
29
32
  logger.info "skipping matched round line: >#{line}<"
33
+
34
+ round = @rounds[ line ] ||= {count: 0, match_count: 0} ## usage counter, match counter
35
+ round[:count] +=1
36
+ @last_round = round
30
37
  elsif try_parse_game( line )
31
38
  # do nothing here
32
39
  else
33
- logger.info "skipping line (no match found): >#{line}<"
40
+ logger.warn "skipping line (no match found): >#{line}<"
34
41
  end
35
42
  end # lines.each
36
43
 
37
- @clubs
44
+ [@clubs, @rounds]
38
45
  end
39
46
 
40
47
  def is_round?( line )
@@ -128,9 +135,12 @@ class AutoConfParser
128
135
 
129
136
  puts "(auto config) try matching clubs:"
130
137
  pp values
138
+
131
139
  @clubs[ values[0] ] += 1 ## update usage counters
132
140
  @clubs[ values[1] ] += 1
133
141
 
142
+ @last_round[ :match_count ] += 1
143
+
134
144
  true
135
145
  end
136
146
 
@@ -72,6 +72,7 @@ class MatchParserSimpleV2 ## simple match parser for club match schedules
72
72
  end
73
73
  end # lines.each
74
74
 
75
+ ## todo/fix: reverse - pass matches as first para
75
76
  [@rounds.values, @matches]
76
77
  end # method parse
77
78
 
@@ -21,6 +21,26 @@ class MatchReaderV2 ## todo/check: rename to MatchReaderV2 (use plural?) why?
21
21
  league = Sync::League.find_or_create( rec[:league] )
22
22
  season = Sync::Season.find_or_create( rec[:season] )
23
23
 
24
+ ## hack for now: switch lang
25
+ if ['de', 'at'].include?( league.country.key )
26
+ SportDb.lang.lang = 'de'
27
+ DateFormats.lang = 'de'
28
+ elsif ['fr'].include?( league.country.key )
29
+ SportDb.lang.lang = 'fr'
30
+ DateFormats.lang = 'fr'
31
+ elsif ['it'].include?( league.country.key )
32
+ SportDb.lang.lang = 'it'
33
+ DateFormats.lang = 'it'
34
+ elsif ['es', 'mx'].include?( league.country.key )
35
+ SportDb.lang.lang = 'es'
36
+ DateFormats.lang = 'es'
37
+ elsif ['pt', 'br'].include?( league.country.key )
38
+ SportDb.lang.lang = 'pt'
39
+ DateFormats.lang = 'pt'
40
+ else
41
+ SportDb.lang.lang = 'en'
42
+ DateFormats.lang = 'en'
43
+ end
24
44
 
25
45
  ## todo/fix:
26
46
  ## always auto create
@@ -36,8 +56,8 @@ class MatchReaderV2 ## todo/check: rename to MatchReaderV2 (use plural?) why?
36
56
  ## fix: just use Stage.create
37
57
  stage = Sync::Stage.find_or_create( rec[:stage], event: event )
38
58
 
39
- auto_conf_clubs = AutoConfParser.parse( rec[:lines],
40
- start: event.start_at )
59
+ auto_conf_clubs, _ = AutoConfParser.parse( rec[:lines],
60
+ start: event.start_at )
41
61
  end
42
62
  else
43
63
  event = Sync::Event.find( league: league, season: season )
@@ -45,8 +65,8 @@ class MatchReaderV2 ## todo/check: rename to MatchReaderV2 (use plural?) why?
45
65
  ## fix: just use Event.create
46
66
  event = Sync::Event.find_or_create( league: league, season: season )
47
67
 
48
- auto_conf_clubs = AutoConfParser.parse( rec[:lines],
49
- start: event.start_at )
68
+ auto_conf_clubs, _ = AutoConfParser.parse( rec[:lines],
69
+ start: event.start_at )
50
70
  end
51
71
  end
52
72
 
@@ -82,27 +102,6 @@ class MatchReaderV2 ## todo/check: rename to MatchReaderV2 (use plural?) why?
82
102
  teams = event.teams
83
103
  end
84
104
 
85
- ## hack for now: switch lang
86
- if ['de', 'at'].include?( league.country.key )
87
- SportDb.lang.lang = 'de'
88
- DateFormats.lang = 'de'
89
- elsif ['fr'].include?( league.country.key )
90
- SportDb.lang.lang = 'fr'
91
- DateFormats.lang = 'fr'
92
- elsif ['it'].include?( league.country.key )
93
- SportDb.lang.lang = 'it'
94
- DateFormats.lang = 'it'
95
- elsif ['es', 'mx'].include?( league.country.key )
96
- SportDb.lang.lang = 'es'
97
- DateFormats.lang = 'es'
98
- elsif ['pt', 'br'].include?( league.country.key )
99
- SportDb.lang.lang = 'pt'
100
- DateFormats.lang = 'pt'
101
- else
102
- SportDb.lang.lang = 'en'
103
- DateFormats.lang = 'en'
104
- end
105
-
106
105
  ## todo/fix: set lang for now depending on league country!!!
107
106
  parser = MatchParserSimpleV2.new( rec[:lines],
108
107
  teams, ## note: use event OR stage teams (if stage is present)
@@ -6,7 +6,7 @@ module Readers
6
6
 
7
7
  MAJOR = 0 ## todo: namespace inside version or something - why? why not??
8
8
  MINOR = 4
9
- PATCH = 3
9
+ PATCH = 4
10
10
  VERSION = [MAJOR,MINOR,PATCH].join('.')
11
11
 
12
12
  def self.version
@@ -36,19 +36,23 @@ class TestAutoConfParser < MiniTest::Test
36
36
 
37
37
  TXT
38
38
 
39
- clubs = parse( txt, lang: 'de' )
39
+ clubs, rounds = parse( txt, lang: 'de' )
40
40
 
41
41
  assert_equal Hash(
42
- 'RB Salzburg' => 2,
43
- 'Wacker Innsbruck' => 2,
44
- 'SV Ried' => 2,
45
- 'Austria Wien' => 2,
46
- 'Kapfenberger SV' => 2,
47
- 'Admira Wacker' => 2,
48
- 'Rapid Wien' => 2,
49
- 'Wr. Neustadt' => 2,
50
- 'SV Mattersburg' => 2,
51
- 'Sturm Graz' => 2 ), clubs
42
+ 'RB Salzburg' => 2,
43
+ 'Wacker Innsbruck' => 2,
44
+ 'SV Ried' => 2,
45
+ 'Austria Wien' => 2,
46
+ 'Kapfenberger SV' => 2,
47
+ 'Admira Wacker' => 2,
48
+ 'Rapid Wien' => 2,
49
+ 'Wr. Neustadt' => 2,
50
+ 'SV Mattersburg' => 2,
51
+ 'Sturm Graz' => 2 ), clubs
52
+
53
+ assert_equal Hash(
54
+ '29. Runde' => { count: 1, match_count: 5 },
55
+ '30. Runde' => { count: 1, match_count: 5 } ), rounds
52
56
  end
53
57
 
54
58
  def test_es
@@ -81,9 +85,9 @@ Jornada 2
81
85
  25.08.2012 Atlético Athletic 4-0
82
86
  TXT
83
87
 
84
- clubs = parse( txt, lang: 'es' )
88
+ clubs, rounds = parse( txt, lang: 'es' )
85
89
 
86
- assert_equal Hash(#
90
+ assert_equal Hash(
87
91
  'Barcelona' => 2,
88
92
  'R. Sociedad' => 2,
89
93
  'Levante' => 2,
@@ -104,6 +108,10 @@ TXT
104
108
  'Granada' => 2,
105
109
  'Deportivo' => 2,
106
110
  'Osasuna' => 2), clubs
111
+
112
+ assert_equal Hash(
113
+ 'Jornada 1' => {count: 1, match_count: 10},
114
+ 'Jornada 2' => {count: 1, match_count: 10} ), rounds
107
115
  end
108
116
 
109
117
 
@@ -142,7 +150,7 @@ Journée 2
142
150
  21h00 Girondins de Bordeaux 4-1 AS Monaco FC
143
151
  TXT
144
152
 
145
- clubs = parse( txt, lang: 'fr' )
153
+ clubs, rounds = parse( txt, lang: 'fr' )
146
154
 
147
155
  assert_equal Hash(
148
156
  'Stade de Reims' => 2,
@@ -165,8 +173,13 @@ TXT
165
173
  'Stade Rennais FC' => 2,
166
174
  'AS Monaco FC' => 2,
167
175
  'FC Lorient' => 2), clubs
176
+
177
+ assert_equal Hash(
178
+ 'Journée 1' => { count: 1, match_count: 10 },
179
+ 'Journée 2' => { count: 1, match_count: 10 } ), rounds
168
180
  end
169
181
 
182
+
170
183
  def test_eng
171
184
  txt = <<TXT
172
185
  Matchday 1
@@ -203,7 +216,7 @@ Matchday 2
203
216
  Manchester City 1-1 Everton FC
204
217
  TXT
205
218
 
206
- clubs = parse( txt )
219
+ clubs, rounds = parse( txt )
207
220
 
208
221
  assert_equal Hash(
209
222
  'Arsenal FC' => 2,
@@ -227,6 +240,10 @@ TXT
227
240
  'Manchester United' => 2,
228
241
  'West Ham United' => 2 ), clubs
229
242
 
243
+ assert_equal Hash(
244
+ 'Matchday 1' => { count: 1, match_count: 10},
245
+ 'Matchday 2' => { count: 1, match_count: 10} ), rounds
246
+
230
247
 
231
248
  txt =<<TXT
232
249
  Round 38
@@ -255,7 +272,7 @@ May/14 Blackpool 4-3 Bolton
255
272
  May/14 Sunderland 1-3 Wolves
256
273
  May/14 West Brom 1-0 Everton
257
274
  TXT
258
- clubs = parse( txt )
275
+ clubs, rounds = parse( txt )
259
276
 
260
277
  assert_equal Hash(
261
278
  'Aston Villa' => 2,
@@ -278,6 +295,10 @@ TXT
278
295
  'Sunderland' => 2,
279
296
  'Wolves' => 2,
280
297
  'Blackburn' => 2), clubs
298
+
299
+ assert_equal Hash(
300
+ 'Round 38' => { count: 1, match_count: 10 },
301
+ 'Round 37' => { count: 1, match_count: 10 } ), rounds
281
302
  end # method test_parse
282
303
 
283
304
 
@@ -306,7 +327,7 @@ Final
306
327
  Petite Rivière Noire 2-0 Pamplemousses @ New George V Stadium, Curepipe
307
328
  TXT
308
329
 
309
- clubs = parse( txt )
330
+ clubs, rounds = parse( txt )
310
331
 
311
332
  assert_equal Hash(
312
333
  'Pointe-aux-Sables Mates' => 1,
@@ -318,6 +339,12 @@ TXT
318
339
  'Pamplemousses' => 3,
319
340
  'Savanne SC' => 1,
320
341
  'Entente Boulet Rouge' => 2), clubs
342
+
343
+ assert_equal Hash(
344
+ 'Preliminary Round' => {count: 1, match_count: 1},
345
+ 'Quarterfinals' => {count: 1, match_count: 4},
346
+ 'Semifinals' => {count: 1, match_count: 2},
347
+ 'Final' => {count: 1, match_count: 1} ), rounds
321
348
  end
322
349
 
323
350
 
@@ -329,10 +356,13 @@ def parse( txt, lang: 'en' )
329
356
 
330
357
  start = Date.new( 2017, 7, 1 )
331
358
 
332
- DateFormats.lang = lang # e.g. 'en'
359
+ DateFormats.lang = lang # e.g. 'en'
360
+ SportDb.lang.lang = lang
361
+
333
362
  parser = SportDb::AutoConfParser.new( lines, start )
334
- clubs = parser.parse
363
+ clubs, rounds = parser.parse
364
+ pp rounds
335
365
  pp clubs
336
- clubs
366
+ [clubs, rounds]
337
367
  end
338
368
  end # class AutoConfParser
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb-readers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer