sportdb-parser 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/Rakefile +1 -1
- data/bin/fbt +1 -1
- data/lib/sportdb/parser/lang.rb +24 -7
- data/lib/sportdb/parser/token-date.rb +99 -21
- data/lib/sportdb/parser/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3657cedc5125ee2515efa8be4a1838d05b7290523dd893f7eba5b87024e71238
|
4
|
+
data.tar.gz: caf6d7e909e17fa0dcabf659ab8f5046ca1940d8f7c1c6f5312e485dc0089384
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4063565aada304a1eb96009b6fe542392f41a55d4ad4d21b5de156004bd69a055c5f86b076bed1defbe50423c8c891dd538931ea6ca9b8ec41e237c23e699219
|
7
|
+
data.tar.gz: 91f6476810cb6617dfcd703ada57592cd38b87f3b4b9fc6fd4468a9457ff0e6ae6337a4e4f5c782e1b80f5f6b6015d5ce26ed6330915cd67a5fb6606f665017f
|
data/CHANGELOG.md
CHANGED
data/Rakefile
CHANGED
data/bin/fbt
CHANGED
data/lib/sportdb/parser/lang.rb
CHANGED
@@ -27,6 +27,12 @@ end
|
|
27
27
|
|
28
28
|
ROUND_RE = %r{^(
|
29
29
|
|
30
|
+
## add special case for group play-off rounds!
|
31
|
+
## group 2 play-off (e.g. worldcup 1954, 1958)
|
32
|
+
(?: Group [ ] [a-z0-9]+ [ ]
|
33
|
+
Play-?offs?
|
34
|
+
)
|
35
|
+
|
|
30
36
|
# round - note - requiers number e.g. round 1,2, etc.
|
31
37
|
# note - use 1-9 regex (cannot start with 0) - why? why not?
|
32
38
|
# make week 01 or round 01 or matchday 01 possible?
|
@@ -46,17 +52,23 @@ ROUND_RE = %r{^(
|
|
46
52
|
|
|
47
53
|
## 1. Round / 2. Round / 3. Round / etc.
|
48
54
|
## Play-off Round
|
55
|
+
## First Round
|
56
|
+
## Final Round (e.g. Worldcup 1950)
|
49
57
|
(?:
|
50
|
-
(?: [1-9][0-9]* \.
|
51
|
-
|
|
52
|
-
|
58
|
+
(?: [1-9][0-9]* \. |
|
59
|
+
Play-?off |
|
60
|
+
1st | First |
|
61
|
+
2nd | Second |
|
62
|
+
Final
|
53
63
|
)
|
54
64
|
[ ] Round
|
55
65
|
)
|
56
66
|
|
|
57
67
|
## starting with preliminary
|
68
|
+
# e.g. Preliminary round
|
58
69
|
(?: Preliminary [ ]
|
59
|
-
(?:
|
70
|
+
(?: Round |
|
71
|
+
Semi-?finals |
|
60
72
|
Final
|
61
73
|
)
|
62
74
|
)
|
@@ -110,10 +122,15 @@ ROUND_RE = %r{^(
|
|
110
122
|
Finals?
|
111
123
|
|
|
112
124
|
## add replays
|
113
|
-
## Final Replay
|
125
|
+
## e.g. Final Replay
|
126
|
+
## Quarter-finals replays
|
127
|
+
## First round replays
|
114
128
|
(?:
|
115
|
-
|
116
|
-
|
129
|
+
(?: First [ ] Round |
|
130
|
+
Quarter-?finals? |
|
131
|
+
Finals?
|
132
|
+
)
|
133
|
+
[ ] Replays?
|
117
134
|
)
|
118
135
|
)$}ix
|
119
136
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
module SportDb
|
1
|
+
module SportDb
|
2
2
|
class Parser
|
3
|
-
|
3
|
+
|
4
4
|
|
5
5
|
|
6
6
|
def self.parse_names( txt )
|
@@ -47,8 +47,8 @@ def self.build_map( lines, downcase: false )
|
|
47
47
|
## "may" => 5,
|
48
48
|
## "june" => 6, "jun" => 6, ...
|
49
49
|
lines.each_with_index.reduce( {} ) do |h,(line,i)|
|
50
|
-
line.each do |name|
|
51
|
-
h[ downcase ? name.downcase : name ] = i+1
|
50
|
+
line.each do |name|
|
51
|
+
h[ downcase ? name.downcase : name ] = i+1
|
52
52
|
end ## note: start mapping with 1 (and NOT zero-based, that is, 0)
|
53
53
|
h
|
54
54
|
end
|
@@ -109,28 +109,56 @@ DAY_MAP = build_map( DAY_LINES, downcase: true )
|
|
109
109
|
## todo - add more date variants !!!!
|
110
110
|
|
111
111
|
# e.g. Fri Aug/9 or Fri Aug 9
|
112
|
-
|
112
|
+
DATE_I_RE = %r{
|
113
113
|
(?<date>
|
114
114
|
\b
|
115
115
|
## optional day name
|
116
116
|
((?<day_name>#{DAY_NAMES})
|
117
117
|
[ ]
|
118
|
-
)?
|
118
|
+
)?
|
119
119
|
(?<month_name>#{MONTH_NAMES})
|
120
120
|
(?: \/|[ ] )
|
121
121
|
(?<day>\d{1,2})
|
122
122
|
## optional year
|
123
123
|
( [ ]
|
124
124
|
(?<year>\d{4})
|
125
|
-
)?
|
126
|
-
\b
|
125
|
+
)?
|
126
|
+
\b
|
127
|
+
)}ix
|
128
|
+
|
129
|
+
|
130
|
+
# e.g. 3 June or 10 June
|
131
|
+
DATE_II_RE = %r{
|
132
|
+
(?<date>
|
133
|
+
\b
|
134
|
+
## optional day name
|
135
|
+
((?<day_name>#{DAY_NAMES})
|
136
|
+
[ ]
|
137
|
+
)?
|
138
|
+
(?<day>\d{1,2})
|
139
|
+
[ ]
|
140
|
+
(?<month_name>#{MONTH_NAMES})
|
141
|
+
## optional year
|
142
|
+
( [ ]
|
143
|
+
(?<year>\d{4})
|
144
|
+
)?
|
145
|
+
\b
|
127
146
|
)}ix
|
128
147
|
|
129
148
|
|
149
|
+
#############################################
|
150
|
+
# map tables
|
151
|
+
# note: order matters; first come-first matched/served
|
152
|
+
DATE_RE = Regexp.union(
|
153
|
+
DATE_I_RE,
|
154
|
+
DATE_II_RE
|
155
|
+
)
|
156
|
+
|
157
|
+
|
130
158
|
###
|
131
|
-
# date duration
|
159
|
+
# date duration
|
132
160
|
# use - or + as separator
|
133
|
-
# in theory plus( +) only if dates
|
161
|
+
# in theory plus( +) only if dates
|
134
162
|
# are two days next to each other
|
135
163
|
#
|
136
164
|
# otherwise define new dates type in the future? why? why not?
|
@@ -147,7 +175,7 @@ DATE_RE = %r{
|
|
147
175
|
# Jun/25 .. 26 - why? why not???
|
148
176
|
# Jun/25 to 26 - why? why not???
|
149
177
|
# Jun/25 + 26 - add - why? why not???
|
150
|
-
# Sun-Wed Jun/23-26 - add - why? why not???
|
178
|
+
# Sun-Wed Jun/23-26 - add - why? why not???
|
151
179
|
# Wed+Thu Jun/26+27 2024 - add - why? why not???
|
152
180
|
#
|
153
181
|
# maybe use comman and plus for list of dates
|
@@ -157,39 +185,89 @@ DATE_RE = %r{
|
|
157
185
|
# add back optional comma (before) year - why? why not?
|
158
186
|
|
159
187
|
|
160
|
-
|
188
|
+
##
|
189
|
+
# todo add plus later on - why? why not?
|
190
|
+
|
191
|
+
DURATION_I_RE = %r{
|
161
192
|
(?<duration>
|
162
193
|
\b
|
163
194
|
## optional day name
|
164
195
|
((?<day_name1>#{DAY_NAMES})
|
165
196
|
[ ]
|
166
|
-
)?
|
197
|
+
)?
|
167
198
|
(?<month_name1>#{MONTH_NAMES})
|
168
199
|
(?: \/|[ ] )
|
169
200
|
(?<day1>\d{1,2})
|
170
201
|
## optional year
|
171
202
|
( [ ]
|
172
203
|
(?<year1>\d{4})
|
173
|
-
)?
|
204
|
+
)?
|
174
205
|
|
175
206
|
## support + and - (add .. or such - why??)
|
176
|
-
[ ]*[
|
177
|
-
|
207
|
+
[ ]*[-][ ]*
|
208
|
+
|
178
209
|
## optional day name
|
179
210
|
((?<day_name2>#{DAY_NAMES})
|
180
211
|
[ ]
|
181
|
-
)?
|
212
|
+
)?
|
182
213
|
(?<month_name2>#{MONTH_NAMES})
|
183
214
|
(?: \/|[ ] )
|
184
215
|
(?<day2>\d{1,2})
|
185
216
|
## optional year
|
186
217
|
( [ ]
|
187
218
|
(?<year2>\d{4})
|
188
|
-
)?
|
189
|
-
\b
|
219
|
+
)?
|
220
|
+
\b
|
221
|
+
)}ix
|
222
|
+
|
223
|
+
|
224
|
+
###
|
225
|
+
# variant ii
|
226
|
+
# e.g. 26 July - 27 July
|
227
|
+
|
228
|
+
DURATION_II_RE = %r{
|
229
|
+
(?<duration>
|
230
|
+
\b
|
231
|
+
## optional day name
|
232
|
+
((?<day_name1>#{DAY_NAMES})
|
233
|
+
[ ]
|
234
|
+
)?
|
235
|
+
(?<day1>\d{1,2})
|
236
|
+
[ ]
|
237
|
+
(?<month_name1>#{MONTH_NAMES})
|
238
|
+
## optional year
|
239
|
+
( [ ]
|
240
|
+
(?<year1>\d{4})
|
241
|
+
)?
|
242
|
+
|
243
|
+
## support + and - (add .. or such - why??)
|
244
|
+
[ ]*[-][ ]*
|
245
|
+
|
246
|
+
## optional day name
|
247
|
+
((?<day_name2>#{DAY_NAMES})
|
248
|
+
[ ]
|
249
|
+
)?
|
250
|
+
(?<day2>\d{1,2})
|
251
|
+
[ ]
|
252
|
+
(?<month_name2>#{MONTH_NAMES})
|
253
|
+
## optional year
|
254
|
+
( [ ]
|
255
|
+
(?<year2>\d{4})
|
256
|
+
)?
|
257
|
+
\b
|
190
258
|
)}ix
|
191
259
|
|
192
260
|
|
261
|
+
#############################################
|
262
|
+
# map tables
|
263
|
+
# note: order matters; first come-first matched/served
|
264
|
+
DURATION_RE = Regexp.union(
|
265
|
+
DURATION_I_RE,
|
266
|
+
DURATION_II_RE
|
267
|
+
)
|
268
|
+
|
269
|
+
|
270
|
+
|
193
271
|
end # class Parser
|
194
|
-
end # module SportDb
|
195
|
-
|
272
|
+
end # module SportDb
|
273
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sportdb-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-08-
|
11
|
+
date: 2024-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cocos
|
@@ -112,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
112
|
requirements:
|
113
113
|
- - ">="
|
114
114
|
- !ruby/object:Gem::Version
|
115
|
-
version:
|
115
|
+
version: 3.1.0
|
116
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
117
|
requirements:
|
118
118
|
- - ">="
|