sportdb 1.8.16 → 1.8.17

Sign up to get free protection for your applications and to get access to all the features.
@@ -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