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.
@@ -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
@@ -20,6 +20,7 @@ lib/sportdb/data/keys.rb
20
20
  lib/sportdb/data/models.rb
21
21
  lib/sportdb/deleter.rb
22
22
  lib/sportdb/finders/date.rb
23
+ lib/sportdb/finders/scores.rb
23
24
  lib/sportdb/lang.rb
24
25
  lib/sportdb/matcher.rb
25
26
  lib/sportdb/models/badge.rb
File without changes
@@ -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'
@@ -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
@@ -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})\// || name =~ /\/(\d{4}|\d{4}_\d{2})$/
129
- # e.g. must match /2012/ or /2012_13/
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 )
@@ -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
- ### fix: depending on language allow 1:1 or 1-1
14
- ## do NOT allow mix and match
15
- ## e.g. default to en is 1-1
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
-
@@ -1,6 +1,6 @@
1
1
 
2
2
  module SportDb
3
- VERSION = '1.8.16'
3
+ VERSION = '1.8.17'
4
4
  end
5
5
 
6
6
 
@@ -6,7 +6,6 @@
6
6
  # require 'minitest/unit'
7
7
  require 'minitest/autorun'
8
8
 
9
- # include MiniTest::Unit # lets us use TestCase instead of MiniTest::Unit::TestCase
10
9
 
11
10
 
12
11
  require 'pp'
@@ -9,34 +9,50 @@ require 'helper'
9
9
  class TestDate < MiniTest::Unit::TestCase
10
10
 
11
11
  def test_date
12
- start_at = DateTime.new( 2013, 1, 1 )
13
-
14
- assert_datetime DateTime.new( 2013, 1, 19, 22 ), parse_date( '19.01.2013 22.00' )
15
- assert_datetime DateTime.new( 2013, 1, 21, 21, 30 ), parse_date( '21.01.2013 21.30' )
16
-
17
- assert_date DateTime.new( 2013, 1, 26 ), parse_date( '26.01.2013' )
18
- assert_date DateTime.new( 2013, 1, 26 ), parse_date( '[26.01.2013]' )
19
-
20
- assert_datetime DateTime.new( 2013, 1, 21, 12, 00 ), parse_date( '[21.1.]', start_at: start_at )
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
- start_at = DateTime.new( 2013, 1, 1 )
26
-
27
- assert_date DateTime.new( 2011, 1, 26 ), parse_date( 'Jan/26 2011', start_at: start_at )
28
- assert_datetime DateTime.new( 2011, 1, 26, 12, 00 ), parse_date( 'Jan/26 2011', start_at: start_at )
29
-
30
- assert_date DateTime.new( 2013, 1, 26 ), parse_date( 'Jan/26', start_at: start_at )
31
- assert_datetime DateTime.new( 2013, 1, 26, 12, 00 ), parse_date( 'Jan/26', start_at: start_at )
32
-
33
- assert_date DateTime.new( 2013, 6, 13 ), parse_date( 'Jun/13', start_at: start_at )
34
- assert_datetime DateTime.new( 2013, 6, 13, 12, 00 ), parse_date( 'Jun/13', start_at: start_at )
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
@@ -6,40 +6,65 @@ class TestScores < MiniTest::Unit::TestCase
6
6
 
7
7
 
8
8
  def test_scores
9
- assert_equal [10,0], parse_scores( '10:0' )
10
- assert_equal [1,22], parse_scores( '1:22' )
11
- assert_equal [1,22], parse_scores( '1-22' )
9
+ data = [
10
+ [ '10:0', [10,0]],
11
+ [ '1:22', [1,22]],
12
+ [ '1-22', [1,22]],
12
13
 
13
- assert_equal [], parse_scores( '1-222' ) # do not support three digits
14
- assert_equal [], parse_scores( '111-0' ) # do not support three digits
15
- assert_equal [], parse_scores( '1:222' ) # do not support three digits
16
- assert_equal [], parse_scores( '111:0' ) # do not support three digits
14
+ ## do not support three digits
15
+ [ '1-222', []],
16
+ [ '111-0', []],
17
+ [ '1:222', []],
18
+ [ '111:0', []],
17
19
 
18
- ## penality only
19
- assert_equal [nil,nil,nil,nil,3,4], parse_scores( '3-4iE' )
20
- assert_equal [nil,nil,nil,nil,3,4], parse_scores( '3:4iE' )
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
- ## extra time only - allow ?? why not ?? only allow penalty w/ missing extra time?
23
- ## todo/fix: issue warning or error in parser!!!
24
- assert_equal [nil,nil,3,4], parse_scores( '3-4nV' )
25
- assert_equal [nil,nil,3,4], parse_scores( '3:4nV' )
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
- assert_equal [1,1,3,4], parse_scores( '3:4nV 1:1' )
28
- assert_equal [1,1,3,4], parse_scores( '1:1 3:4nV' )
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
- assert_equal [1,1,nil,nil,3,4], parse_scores( '3:4iE 1:1' )
31
- assert_equal [1,1,nil,nil,3,4], parse_scores( '1:1 3:4iE' )
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
- class Reader
36
- include LogUtils::Logging # add logger
37
- include SportDb::FixtureHelpers
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
- reader = Reader.new
42
- reader.find_scores!( line )
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.16
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-04-25 00:00:00.000000000 Z
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: &72538960 !ruby/object:Gem::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: *72538960
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: &72537120 !ruby/object:Gem::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: *72537120
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: &72529170 !ruby/object:Gem::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: *72529170
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: &72528110 !ruby/object:Gem::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: *72528110
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: &72527770 !ruby/object:Gem::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: *72527770
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: &72527230 !ruby/object:Gem::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: *72527230
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: &72526900 !ruby/object:Gem::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: *72526900
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: &72526650 !ruby/object:Gem::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: *72526650
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: &72526110 !ruby/object:Gem::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: *72526110
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: &72524490 !ruby/object:Gem::Requirement
116
- none: false
141
+ requirement: !ruby/object:Gem::Requirement
117
142
  requirements:
118
143
  - - ~>
119
144
  - !ruby/object:Gem::Version
120
- version: '3.11'
145
+ version: '3.10'
121
146
  type: :development
122
147
  prerelease: false
123
- version_requirements: *72524490
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.8.17
322
+ rubygems_version: 2.1.10
294
323
  signing_key:
295
- specification_version: 3
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/test_cursor.rb
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/test_reader.rb
307
- - test/test_changes.rb
334
+ - test/test_scores.rb
335
+ - test/test_utils.rb
336
+ - test/test_winner.rb