sportdb 1.8.16 → 1.8.17
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 +7 -0
- data/Manifest.txt +1 -0
- data/bin/sportdb +0 -0
- data/lib/sportdb.rb +3 -0
- data/lib/sportdb/finders/date.rb +14 -0
- data/lib/sportdb/finders/scores.rb +122 -0
- data/lib/sportdb/reader.rb +3 -2
- data/lib/sportdb/utils_scores.rb +4 -78
- data/lib/sportdb/version.rb +1 -1
- data/test/helper.rb +0 -1
- data/test/test_date.rb +36 -20
- data/test/test_scores.rb +49 -24
- metadata +73 -44
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 0b4e0cbf4dbbf1a4b505edada00c4368b2bc1233
|
|
4
|
+
data.tar.gz: b0b4f89e838232753640714dba0f08aeeff29853
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: aa7636a7a61ae541079cbdeabed5ebaae1b104c682700a0018eb0033139ae0074389f3ef9da901f1019fa9ce681b1da3bc3c418da01bfba5cc33eb6928d6841b
|
|
7
|
+
data.tar.gz: 0c1eebb17d41fa62fd12be72ce336158bca7d89adc1bd18b85c782106a54edf408029b6caab94150ad1d127888bd126ad54471523a18fa4aad68ec832831d3c6
|
data/Manifest.txt
CHANGED
data/bin/sportdb
CHANGED
|
File without changes
|
data/lib/sportdb.rb
CHANGED
|
@@ -65,7 +65,10 @@ end
|
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
require 'sportdb/schema' # NB: requires sportdb/models (include SportDB::Models)
|
|
68
|
+
|
|
68
69
|
require 'sportdb/finders/date'
|
|
70
|
+
require 'sportdb/finders/scores'
|
|
71
|
+
|
|
69
72
|
require 'sportdb/utils'
|
|
70
73
|
require 'sportdb/utils_date'
|
|
71
74
|
require 'sportdb/utils_group'
|
data/lib/sportdb/finders/date.rb
CHANGED
|
@@ -134,6 +134,19 @@ class DateFinder
|
|
|
134
134
|
(?<minutes>\d{2})
|
|
135
135
|
\b/x
|
|
136
136
|
|
|
137
|
+
# e.g. Jun/12 2011 14:00
|
|
138
|
+
EN__MONTH_DD_YYYY__DATE_TIME_REGEX = /\b
|
|
139
|
+
(?<month_en>#{MONTH_EN})
|
|
140
|
+
\/
|
|
141
|
+
(?<day>\d{1,2})
|
|
142
|
+
\s
|
|
143
|
+
(?<year>\d{4})
|
|
144
|
+
\s+
|
|
145
|
+
(?<hours>\d{1,2})
|
|
146
|
+
:
|
|
147
|
+
(?<minutes>\d{2})
|
|
148
|
+
\b/x
|
|
149
|
+
|
|
137
150
|
# e.g. Jun/12 14:00 w/ implied year H|HH:MM
|
|
138
151
|
EN__MONTH_DD__DATE_TIME_REGEX = /\b
|
|
139
152
|
(?<month_en>#{MONTH_EN})
|
|
@@ -180,6 +193,7 @@ class DateFinder
|
|
|
180
193
|
[ '[DD_MM_YYYY]', DD_MM_YYYY__DATE_REGEX ],
|
|
181
194
|
[ '[DD_MM]', DD_MM__DATE_REGEX ],
|
|
182
195
|
[ '[EN_DD_MONTH_YYYY_hh_mm]', EN__DD_MONTH_YYYY__DATE_TIME_REGEX ],
|
|
196
|
+
[ '[EN_MONTH_DD_YYYY_hh_mm]', EN__MONTH_DD_YYYY__DATE_TIME_REGEX ],
|
|
183
197
|
[ '[EN_MONTH_DD_hh_mm]', EN__MONTH_DD__DATE_TIME_REGEX ],
|
|
184
198
|
[ '[EN_MONTH_DD_YYYY]', EN__MONTH_DD_YYYY__DATE_REGEX ],
|
|
185
199
|
[ '[EN_MONTH_DD]', EN__MONTH_DD__DATE_REGEX ],
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
module SportDb
|
|
4
|
+
|
|
5
|
+
class ScoresFinder
|
|
6
|
+
|
|
7
|
+
include LogUtils::Logging
|
|
8
|
+
|
|
9
|
+
# e.g. 1:2 or 0:2 or 3:3 or
|
|
10
|
+
# 1-1 or 0-2 or 3-3
|
|
11
|
+
FT_REGEX = /\b
|
|
12
|
+
(?<score1>\d{1,2})
|
|
13
|
+
[:\-]
|
|
14
|
+
(?<score2>\d{1,2})
|
|
15
|
+
\b/x
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# e.g. 1:2nV => after extra time a.e.t
|
|
19
|
+
|
|
20
|
+
# note: possible ending w/ . -> thus cannot use /b will not work w/ .; use zero look-ahead
|
|
21
|
+
ET_REGEX = /\b
|
|
22
|
+
(?<score1>\d{1,2})
|
|
23
|
+
[:\-]
|
|
24
|
+
(?<score2>\d{1,2})
|
|
25
|
+
\s? # allow optional space
|
|
26
|
+
(?:nV|n\.V\.|aet|a\.e\.t\.) # allow optional . e.g. nV or n.V.
|
|
27
|
+
(?=[\s\)\]]|$)/xi
|
|
28
|
+
|
|
29
|
+
## todo: add/allow english markers e.g. pen or p ??
|
|
30
|
+
|
|
31
|
+
# e.g. 5:4iE => penalty / after penalty a.p
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
# note: possible ending w/ . -> thus cannot use /b will not work w/ .; use zero look-ahead
|
|
35
|
+
P_REGEX = /\b
|
|
36
|
+
(?<score1>\d{1,2})
|
|
37
|
+
[:\-]
|
|
38
|
+
(?<score2>\d{1,2})
|
|
39
|
+
\s? # allow optional space
|
|
40
|
+
(?:iE|i\.E\.|p|pen|PSO) # allow optional . e.g. iE or i.E.
|
|
41
|
+
(?=[\s\)\]]|$)/xi
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## todo: allow all-in-one "literal form a la kicker" e.g.
|
|
45
|
+
# 2:2 (1:1, 1:0) n.V. 5:1 i.E.
|
|
46
|
+
|
|
47
|
+
def initialize
|
|
48
|
+
# nothing here for now
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def find!( line, opts={} )
|
|
52
|
+
|
|
53
|
+
### fix: add and match all-in-one literal first, followed by
|
|
54
|
+
|
|
55
|
+
# note: always call after find_dates !!!
|
|
56
|
+
# scores match date-like patterns!! e.g. 10-11 or 10:00 etc.
|
|
57
|
+
# -- note: score might have two digits too
|
|
58
|
+
|
|
59
|
+
### fix: depending on language allow 1:1 or 1-1
|
|
60
|
+
## do NOT allow mix and match
|
|
61
|
+
## e.g. default to en is 1-1
|
|
62
|
+
## de is 1:1 etc.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
# extract score from line
|
|
66
|
+
# and return it
|
|
67
|
+
# NB: side effect - removes date from line string
|
|
68
|
+
|
|
69
|
+
score1 = nil
|
|
70
|
+
score2 = nil
|
|
71
|
+
|
|
72
|
+
score1et = nil
|
|
73
|
+
score2et = nil
|
|
74
|
+
|
|
75
|
+
score1p = nil
|
|
76
|
+
score2p = nil
|
|
77
|
+
|
|
78
|
+
if (md = ET_REGEX.match( line ))
|
|
79
|
+
score1et = md[:score1].to_i
|
|
80
|
+
score2et = md[:score2].to_i
|
|
81
|
+
|
|
82
|
+
logger.debug " score.et: >#{score1et}-#{score2et}<"
|
|
83
|
+
|
|
84
|
+
line.sub!( md[0], '[SCORE.ET]' )
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
if (md = P_REGEX.match( line ))
|
|
88
|
+
score1p = md[:score1].to_i
|
|
89
|
+
score2p = md[:score2].to_i
|
|
90
|
+
|
|
91
|
+
logger.debug " score.p: >#{score1p}-#{score2p}<"
|
|
92
|
+
|
|
93
|
+
line.sub!( md[0], '[SCORE.P]' )
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
## let full time (ft) standard regex go last - has no marker
|
|
97
|
+
|
|
98
|
+
if (md = FT_REGEX.match( line ))
|
|
99
|
+
score1 = md[:score1].to_i
|
|
100
|
+
score2 = md[:score2].to_i
|
|
101
|
+
|
|
102
|
+
logger.debug " score: >#{score1}-#{score2}<"
|
|
103
|
+
|
|
104
|
+
line.sub!( md[0], '[SCORE]' )
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
## todo: how to handle game w/o extra time
|
|
108
|
+
# but w/ optional penalty ??? e.g. used in copa liberatores, for example
|
|
109
|
+
# retrun 0,0 or nil,nil for extra time score ?? or -1, -1 ??
|
|
110
|
+
# for now use nil,nil
|
|
111
|
+
|
|
112
|
+
scores = []
|
|
113
|
+
scores += [score1, score2] if score1p || score2p || score1et || score2et || score1 || score2
|
|
114
|
+
scores += [score1et, score2et] if score1p || score2p || score1et || score2et
|
|
115
|
+
scores += [score1p, score2p] if score1p || score2p
|
|
116
|
+
|
|
117
|
+
scores
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
end # class ScoresFinder
|
|
121
|
+
|
|
122
|
+
end # module SportDb
|
data/lib/sportdb/reader.rb
CHANGED
|
@@ -125,8 +125,9 @@ class Reader
|
|
|
125
125
|
elsif name =~ /(?:^|\/)teams/
|
|
126
126
|
reader = TeamReader.new( include_path )
|
|
127
127
|
reader.read( name, club: is_club_fixture?( name ) )
|
|
128
|
-
elsif name =~ /\/(\d{4}|\d{4}_\d{2})
|
|
129
|
-
|
|
128
|
+
elsif name =~ /\/(\d{4}|\d{4}_\d{2})(--[^\/]+)?\// ||
|
|
129
|
+
name =~ /\/(\d{4}|\d{4}_\d{2})$/
|
|
130
|
+
# e.g. must match /2012/ or /2012_13/ or /2012--xxx/ or /2012_13--xx/
|
|
130
131
|
# or /2012 or /2012_13 e.g. brazil/2012 or brazil/2012_13
|
|
131
132
|
reader = GameReader.new( include_path )
|
|
132
133
|
reader.read( name )
|
data/lib/sportdb/utils_scores.rb
CHANGED
|
@@ -4,88 +4,14 @@ module SportDb
|
|
|
4
4
|
module FixtureHelpers
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
def find_scores!( line )
|
|
8
|
-
|
|
7
|
+
def find_scores!( line, opts={} )
|
|
9
8
|
# note: always call after find_dates !!!
|
|
10
9
|
# scores match date-like patterns!! e.g. 10-11 or 10:00 etc.
|
|
11
10
|
# -- note: score might have two digits too
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## de is 1:1 etc.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
# extract score from line
|
|
20
|
-
# and return it
|
|
21
|
-
# NB: side effect - removes date from line string
|
|
22
|
-
|
|
23
|
-
# note: regex should NOT match regex extra time or penalty
|
|
24
|
-
# thus, we do NOT any longer allow spaces for now between
|
|
25
|
-
# score and marker (e.g. nV,iE, etc.)
|
|
26
|
-
|
|
27
|
-
# e.g. 1:2 or 0:2 or 3:3 // 1-1 or 0-2 or 3-3
|
|
28
|
-
regex = /\b(\d{1,2})[:\-](\d{1,2})\b/
|
|
29
|
-
|
|
30
|
-
## todo: add/allow english markers e.g. aet ??
|
|
31
|
-
|
|
32
|
-
## fix: use case insansitive flag instead e.g. /i
|
|
33
|
-
# instead of [nN] etc.
|
|
34
|
-
|
|
35
|
-
# e.g. 1:2nV => after extra time a.e.t
|
|
36
|
-
regex_et = /\b(\d{1,2})[:\-](\d{1,2})[nN][vV]\b/
|
|
37
|
-
|
|
38
|
-
# e.g. 5:4iE => penalty / after penalty a.p
|
|
39
|
-
regex_p = /\b(\d{1,2})[:\-](\d{1,2})[iI][eE]\b/
|
|
40
|
-
|
|
41
|
-
scores = []
|
|
42
|
-
|
|
43
|
-
## todo: how to handle game w/o extra time
|
|
44
|
-
# but w/ optional penalty ??? e.g. used in copa liberatores, for example
|
|
45
|
-
# retrun 0,0 or nil,nil for extra time score ?? or -1, -1 ??
|
|
46
|
-
# for now use nil,nil
|
|
47
|
-
|
|
48
|
-
if line =~ regex
|
|
49
|
-
logger.debug " score: >#{$1}-#{$2}<"
|
|
50
|
-
|
|
51
|
-
line.sub!( regex, '[SCORE]' )
|
|
52
|
-
|
|
53
|
-
scores << $1.to_i
|
|
54
|
-
scores << $2.to_i
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
## todo:
|
|
58
|
-
## reverse matching order ??? allows us to support spaces for nV and iE
|
|
59
|
-
## why? why not??
|
|
60
|
-
|
|
61
|
-
if line =~ regex_et
|
|
62
|
-
logger.debug " score.et: >#{$1}-#{$2}<"
|
|
63
|
-
|
|
64
|
-
line.sub!( regex_et, '[SCORE.ET]' )
|
|
65
|
-
|
|
66
|
-
## check scores empty? - fill with nil,nil
|
|
67
|
-
scores += [nil,nil] if scores.size == 0
|
|
68
|
-
|
|
69
|
-
scores << $1.to_i
|
|
70
|
-
scores << $2.to_i
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
if line =~ regex_p
|
|
74
|
-
logger.debug " score.p: >#{$1}-#{$2}<"
|
|
75
|
-
|
|
76
|
-
line.sub!( regex_p, '[SCORE.P]' )
|
|
77
|
-
|
|
78
|
-
## check scores empty? - fill with nil,nil
|
|
79
|
-
scores += [nil,nil] if scores.size == 0
|
|
80
|
-
scores += [nil,nil] if scores.size == 2
|
|
81
|
-
|
|
82
|
-
scores << $1.to_i
|
|
83
|
-
scores << $2.to_i
|
|
84
|
-
end
|
|
85
|
-
scores
|
|
86
|
-
end # methdod find_scores!
|
|
87
|
-
|
|
12
|
+
finder = ScoresFinder.new
|
|
13
|
+
finder.find!( line, opts )
|
|
14
|
+
end
|
|
88
15
|
|
|
89
16
|
end # module FixtureHelpers
|
|
90
17
|
end # module SportDb
|
|
91
|
-
|
data/lib/sportdb/version.rb
CHANGED
data/test/helper.rb
CHANGED
data/test/test_date.rb
CHANGED
|
@@ -9,34 +9,50 @@ require 'helper'
|
|
|
9
9
|
class TestDate < MiniTest::Unit::TestCase
|
|
10
10
|
|
|
11
11
|
def test_date
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
data = [
|
|
13
|
+
[ '19.01.2013 22.00', '2013-01-19 22:00' ],
|
|
14
|
+
[ '21.01.2013 21.30', '2013-01-21 21:30' ],
|
|
15
|
+
[ '26.01.2013', '2013-01-26' ],
|
|
16
|
+
[ '[26.01.2013]', '2013-01-26' ],
|
|
17
|
+
[ '[21.1.]', '2013-01-21 12:00' ]
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
assert_dates( data, start_at: DateTime.new( 2013, 1, 1 ) )
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
|
|
24
23
|
def test_date_en
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
data = [
|
|
25
|
+
[ 'Jun/12 2011 14:00', '2011-06-12 14:00' ],
|
|
26
|
+
[ 'Oct/12 2013 16:00', '2013-10-12 16:00' ],
|
|
27
|
+
|
|
28
|
+
[ 'Jan/26 2011', '2011-01-26' ],
|
|
29
|
+
[ 'Jan/26 2011', '2011-01-26 12:00' ],
|
|
30
|
+
|
|
31
|
+
[ 'Jan/26', '2013-01-26' ],
|
|
32
|
+
[ 'Jan/26', '2013-01-26 12:00' ],
|
|
33
|
+
|
|
34
|
+
[ 'Jun/13', '2013-06-13' ],
|
|
35
|
+
[ 'Jun/13', '2013-06-13 12:00' ]
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
assert_dates( data, start_at: DateTime.new( 2013, 1, 1 ) )
|
|
35
39
|
end
|
|
36
40
|
|
|
37
41
|
|
|
38
42
|
private
|
|
39
43
|
|
|
44
|
+
def assert_dates( data, opts )
|
|
45
|
+
data.each do |rec|
|
|
46
|
+
line = rec[0]
|
|
47
|
+
str = rec[1]
|
|
48
|
+
if str.index( ':' )
|
|
49
|
+
assert_datetime( DateTime.strptime( str, '%Y-%m-%d %H:%M' ), parse_date( line, opts ))
|
|
50
|
+
else
|
|
51
|
+
assert_date( DateTime.strptime( str, '%Y-%m-%d' ), parse_date( line, opts ))
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
40
56
|
## todo: check if assert_datetime or assert_date exist already? what is the best practice to check dates ???
|
|
41
57
|
def assert_date( exp, act )
|
|
42
58
|
assert_equal exp.year, act.year
|
data/test/test_scores.rb
CHANGED
|
@@ -6,40 +6,65 @@ class TestScores < MiniTest::Unit::TestCase
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
def test_scores
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
data = [
|
|
10
|
+
[ '10:0', [10,0]],
|
|
11
|
+
[ '1:22', [1,22]],
|
|
12
|
+
[ '1-22', [1,22]],
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
## do not support three digits
|
|
15
|
+
[ '1-222', []],
|
|
16
|
+
[ '111-0', []],
|
|
17
|
+
[ '1:222', []],
|
|
18
|
+
[ '111:0', []],
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
## penality only
|
|
21
|
+
[ '3-4iE', [nil,nil,nil,nil,3,4]],
|
|
22
|
+
[ '3:4iE', [nil,nil,nil,nil,3,4]],
|
|
23
|
+
[ '3:4 iE', [nil,nil,nil,nil,3,4]],
|
|
24
|
+
[ '3:4 i.E.', [nil,nil,nil,nil,3,4]],
|
|
25
|
+
[ '3-4 pen', [nil,nil,nil,nil,3,4]],
|
|
26
|
+
[ '3-4 PSO', [nil,nil,nil,nil,3,4]], # PSO => penalty shotout
|
|
27
|
+
[ '3-4p', [nil,nil,nil,nil,3,4]],
|
|
28
|
+
[ '3-4 p', [nil,nil,nil,nil,3,4]],
|
|
21
29
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
## extra time only - allow ?? why not ?? only allow penalty w/ missing extra time?
|
|
31
|
+
## todo/fix: issue warning or error in parser!!!
|
|
32
|
+
[ '3-4nV', [nil,nil,3,4]],
|
|
33
|
+
[ '3:4nV', [nil,nil,3,4]],
|
|
34
|
+
[ '3-4 aet', [nil,nil,3,4]],
|
|
35
|
+
[ '3-4 a.e.t.', [nil,nil,3,4]],
|
|
26
36
|
|
|
27
|
-
|
|
28
|
-
|
|
37
|
+
[ '3:4nV 1:1', [1,1,3,4]],
|
|
38
|
+
[ '1:1 3:4nV', [1,1,3,4]],
|
|
39
|
+
[ '3:4 nV 1:1', [1,1,3,4]],
|
|
40
|
+
[ '3:4 n.V. 1:1', [1,1,3,4]],
|
|
29
41
|
|
|
30
|
-
|
|
31
|
-
|
|
42
|
+
[ '3:4iE 1:1', [1,1,nil,nil,3,4]],
|
|
43
|
+
[ '1:1 3:4iE', [1,1,nil,nil,3,4]],
|
|
44
|
+
|
|
45
|
+
[ '1:1 2:2nV 3:4iE', [1,1,2,2,3,4]],
|
|
46
|
+
[ '3:4iE 2:2nV 1:1', [1,1,2,2,3,4]],
|
|
47
|
+
[ '3:4 i.E. 2:2 n.V. 1:1', [1,1,2,2,3,4]],
|
|
48
|
+
[ '3-4p 2-2aet 1-1', [1,1,2,2,3,4]],
|
|
49
|
+
[ '3-4 pen 2-2 aet 1-1', [1,1,2,2,3,4]]
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
assert_scores( data )
|
|
32
53
|
end
|
|
33
54
|
|
|
34
55
|
private
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
56
|
+
def assert_scores( data )
|
|
57
|
+
data.each do |rec|
|
|
58
|
+
line = rec[0]
|
|
59
|
+
exp = rec[1]
|
|
60
|
+
|
|
61
|
+
assert_equal exp, parse_scores( line )
|
|
62
|
+
end
|
|
38
63
|
end
|
|
39
64
|
|
|
40
65
|
def parse_scores( line )
|
|
41
|
-
|
|
42
|
-
|
|
66
|
+
finder = SportDb::ScoresFinder.new
|
|
67
|
+
finder.find!( line )
|
|
43
68
|
end
|
|
44
69
|
|
|
45
|
-
end # class TestScores
|
|
70
|
+
end # class TestScores
|
metadata
CHANGED
|
@@ -1,126 +1,155 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sportdb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.8.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.8.17
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Gerald Bauer
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date: 2014-
|
|
11
|
+
date: 2014-05-07 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: props
|
|
16
|
-
requirement:
|
|
17
|
-
none: false
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
18
16
|
requirements:
|
|
19
17
|
- - ! '>='
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
19
|
version: '0'
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
|
-
version_requirements:
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ! '>='
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
25
27
|
- !ruby/object:Gem::Dependency
|
|
26
28
|
name: logutils
|
|
27
|
-
requirement:
|
|
28
|
-
none: false
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
30
|
requirements:
|
|
30
31
|
- - ! '>='
|
|
31
32
|
- !ruby/object:Gem::Version
|
|
32
33
|
version: '0'
|
|
33
34
|
type: :runtime
|
|
34
35
|
prerelease: false
|
|
35
|
-
version_requirements:
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ! '>='
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
36
41
|
- !ruby/object:Gem::Dependency
|
|
37
42
|
name: textutils
|
|
38
|
-
requirement:
|
|
39
|
-
none: false
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
40
44
|
requirements:
|
|
41
45
|
- - ! '>='
|
|
42
46
|
- !ruby/object:Gem::Version
|
|
43
47
|
version: '0'
|
|
44
48
|
type: :runtime
|
|
45
49
|
prerelease: false
|
|
46
|
-
version_requirements:
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ! '>='
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
47
55
|
- !ruby/object:Gem::Dependency
|
|
48
56
|
name: worlddb
|
|
49
|
-
requirement:
|
|
50
|
-
none: false
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
51
58
|
requirements:
|
|
52
59
|
- - ! '>='
|
|
53
60
|
- !ruby/object:Gem::Version
|
|
54
61
|
version: 2.0.2
|
|
55
62
|
type: :runtime
|
|
56
63
|
prerelease: false
|
|
57
|
-
version_requirements:
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ! '>='
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 2.0.2
|
|
58
69
|
- !ruby/object:Gem::Dependency
|
|
59
70
|
name: tagutils
|
|
60
|
-
requirement:
|
|
61
|
-
none: false
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
62
72
|
requirements:
|
|
63
73
|
- - ! '>='
|
|
64
74
|
- !ruby/object:Gem::Version
|
|
65
75
|
version: '0'
|
|
66
76
|
type: :runtime
|
|
67
77
|
prerelease: false
|
|
68
|
-
version_requirements:
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ! '>='
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: fetcher
|
|
71
|
-
requirement:
|
|
72
|
-
none: false
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
73
86
|
requirements:
|
|
74
87
|
- - ! '>='
|
|
75
88
|
- !ruby/object:Gem::Version
|
|
76
89
|
version: '0.3'
|
|
77
90
|
type: :runtime
|
|
78
91
|
prerelease: false
|
|
79
|
-
version_requirements:
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ! '>='
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0.3'
|
|
80
97
|
- !ruby/object:Gem::Dependency
|
|
81
98
|
name: gli
|
|
82
|
-
requirement:
|
|
83
|
-
none: false
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
84
100
|
requirements:
|
|
85
101
|
- - ! '>='
|
|
86
102
|
- !ruby/object:Gem::Version
|
|
87
103
|
version: 2.5.6
|
|
88
104
|
type: :runtime
|
|
89
105
|
prerelease: false
|
|
90
|
-
version_requirements:
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ! '>='
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 2.5.6
|
|
91
111
|
- !ruby/object:Gem::Dependency
|
|
92
112
|
name: activerecord
|
|
93
|
-
requirement:
|
|
94
|
-
none: false
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
95
114
|
requirements:
|
|
96
115
|
- - ! '>='
|
|
97
116
|
- !ruby/object:Gem::Version
|
|
98
117
|
version: '0'
|
|
99
118
|
type: :runtime
|
|
100
119
|
prerelease: false
|
|
101
|
-
version_requirements:
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ! '>='
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
102
125
|
- !ruby/object:Gem::Dependency
|
|
103
126
|
name: rdoc
|
|
104
|
-
requirement:
|
|
105
|
-
none: false
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
106
128
|
requirements:
|
|
107
129
|
- - ~>
|
|
108
130
|
- !ruby/object:Gem::Version
|
|
109
131
|
version: '4.0'
|
|
110
132
|
type: :development
|
|
111
133
|
prerelease: false
|
|
112
|
-
version_requirements:
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ~>
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '4.0'
|
|
113
139
|
- !ruby/object:Gem::Dependency
|
|
114
140
|
name: hoe
|
|
115
|
-
requirement:
|
|
116
|
-
none: false
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
117
142
|
requirements:
|
|
118
143
|
- - ~>
|
|
119
144
|
- !ruby/object:Gem::Version
|
|
120
|
-
version: '3.
|
|
145
|
+
version: '3.10'
|
|
121
146
|
type: :development
|
|
122
147
|
prerelease: false
|
|
123
|
-
version_requirements:
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - ~>
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '3.10'
|
|
124
153
|
description: sportdb - sport.db command line tool
|
|
125
154
|
email: opensport@googlegroups.com
|
|
126
155
|
executables:
|
|
@@ -153,6 +182,7 @@ files:
|
|
|
153
182
|
- lib/sportdb/data/models.rb
|
|
154
183
|
- lib/sportdb/deleter.rb
|
|
155
184
|
- lib/sportdb/finders/date.rb
|
|
185
|
+
- lib/sportdb/finders/scores.rb
|
|
156
186
|
- lib/sportdb/lang.rb
|
|
157
187
|
- lib/sportdb/matcher.rb
|
|
158
188
|
- lib/sportdb/models/badge.rb
|
|
@@ -260,6 +290,7 @@ files:
|
|
|
260
290
|
homepage: https://github.com/geraldb/sport.db.ruby
|
|
261
291
|
licenses:
|
|
262
292
|
- Public Domain
|
|
293
|
+
metadata: {}
|
|
263
294
|
post_install_message: ! '******************************************************************************
|
|
264
295
|
|
|
265
296
|
|
|
@@ -277,31 +308,29 @@ rdoc_options:
|
|
|
277
308
|
require_paths:
|
|
278
309
|
- lib
|
|
279
310
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
280
|
-
none: false
|
|
281
311
|
requirements:
|
|
282
312
|
- - ! '>='
|
|
283
313
|
- !ruby/object:Gem::Version
|
|
284
314
|
version: 1.9.2
|
|
285
315
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
286
|
-
none: false
|
|
287
316
|
requirements:
|
|
288
317
|
- - ! '>='
|
|
289
318
|
- !ruby/object:Gem::Version
|
|
290
319
|
version: '0'
|
|
291
320
|
requirements: []
|
|
292
321
|
rubyforge_project:
|
|
293
|
-
rubygems_version: 1.
|
|
322
|
+
rubygems_version: 2.1.10
|
|
294
323
|
signing_key:
|
|
295
|
-
specification_version:
|
|
324
|
+
specification_version: 4
|
|
296
325
|
summary: sportdb - sport.db command line tool
|
|
297
326
|
test_files:
|
|
327
|
+
- test/test_changes.rb
|
|
328
|
+
- test/test_cursor.rb
|
|
298
329
|
- test/test_date.rb
|
|
299
330
|
- test/test_lang.rb
|
|
300
|
-
- test/
|
|
301
|
-
- test/test_scores.rb
|
|
302
|
-
- test/test_winner.rb
|
|
331
|
+
- test/test_reader.rb
|
|
303
332
|
- test/test_round_def.rb
|
|
304
|
-
- test/test_utils.rb
|
|
305
333
|
- test/test_round_header.rb
|
|
306
|
-
- test/
|
|
307
|
-
- test/
|
|
334
|
+
- test/test_scores.rb
|
|
335
|
+
- test/test_utils.rb
|
|
336
|
+
- test/test_winner.rb
|