sportdb 1.7.0 → 1.7.1
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/lib/sportdb/console.rb +2 -2
- data/lib/sportdb/models/game.rb +63 -9
- data/lib/sportdb/models/team.rb +1 -1
- data/lib/sportdb/reader.rb +17 -13
- data/lib/sportdb/schema.rb +2 -2
- data/lib/sportdb/version.rb +1 -1
- metadata +29 -19
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 7821792672d5e971444ef9f51adb41f7cb2059b1
|
|
4
|
+
data.tar.gz: 256d782e620f2cd78adba12da7b207053a9d0c6c
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 571e77542ea420347b555d023846f9c5fb374452c0bbcf3663c7fb543a2fdb877ebf505699c84589d28c13911b387820e98ae7385ba21c475acefb9c21673dcb
|
|
7
|
+
data.tar.gz: b1fcafb80a003779928c2a2c2c7c610414993f2cecf287507b8807a901c75c81ec68accf4d1cceae2cc371860b7640d674b18246ea428ad3d57419cea9e11bf3
|
data/lib/sportdb/console.rb
CHANGED
|
@@ -75,8 +75,8 @@ EURO2008 = Event.find_by_key( 'euro.2008' )
|
|
|
75
75
|
EURO2012 = Event.find_by_key( 'euro.2012' )
|
|
76
76
|
EURO = EURO2012 # add alias
|
|
77
77
|
|
|
78
|
-
BL = Event.find_by_key( 'de.
|
|
79
|
-
PL = Event.find_by_key( 'en.
|
|
78
|
+
BL = Event.find_by_key( 'de.2013/14' )
|
|
79
|
+
PL = Event.find_by_key( 'en.2013/14' )
|
|
80
80
|
|
|
81
81
|
### some club teams
|
|
82
82
|
|
data/lib/sportdb/models/game.rb
CHANGED
|
@@ -16,11 +16,19 @@ class Game < ActiveRecord::Base
|
|
|
16
16
|
### getter/setters for deprecated attribs (score3,4,5,6) n national
|
|
17
17
|
|
|
18
18
|
def score3
|
|
19
|
-
|
|
19
|
+
score1et
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def score4
|
|
23
|
-
|
|
23
|
+
score2et
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def score1ot
|
|
27
|
+
score1et
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def score2ot
|
|
31
|
+
score2et
|
|
24
32
|
end
|
|
25
33
|
|
|
26
34
|
def score5
|
|
@@ -32,11 +40,19 @@ class Game < ActiveRecord::Base
|
|
|
32
40
|
end
|
|
33
41
|
|
|
34
42
|
def score3=(value)
|
|
35
|
-
self.
|
|
43
|
+
self.score1et = value
|
|
36
44
|
end
|
|
37
45
|
|
|
38
46
|
def score4=(value)
|
|
39
|
-
self.
|
|
47
|
+
self.score2et = value
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def score1ot=(value)
|
|
51
|
+
self.score1et = value
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def score2ot=(value)
|
|
55
|
+
self.score2et = value
|
|
40
56
|
end
|
|
41
57
|
|
|
42
58
|
def score5=(value)
|
|
@@ -95,8 +111,8 @@ class Game < ActiveRecord::Base
|
|
|
95
111
|
:team1 => value_teams[0],
|
|
96
112
|
:score1 => value_scores[0],
|
|
97
113
|
:score2 => value_scores[1],
|
|
98
|
-
:
|
|
99
|
-
:
|
|
114
|
+
:score1et => value_scores[2],
|
|
115
|
+
:score2et => value_scores[3],
|
|
100
116
|
:score1p => value_scores[4],
|
|
101
117
|
:score2p => value_scores[5],
|
|
102
118
|
:team2 => value_teams[1],
|
|
@@ -159,8 +175,8 @@ class Game < ActiveRecord::Base
|
|
|
159
175
|
:team1 =>pair[1][1],
|
|
160
176
|
:score1 =>pair[1][2][0],
|
|
161
177
|
:score2 =>pair[1][2][1],
|
|
162
|
-
:
|
|
163
|
-
:
|
|
178
|
+
:score1et =>pair[1][2][2],
|
|
179
|
+
:score2et =>pair[1][2][3],
|
|
164
180
|
:score1p =>pair[1][2][4],
|
|
165
181
|
:score1p =>pair[1][2][5],
|
|
166
182
|
:team2 =>pair[1][3],
|
|
@@ -192,7 +208,7 @@ class Game < ActiveRecord::Base
|
|
|
192
208
|
self.toto12x = '2'
|
|
193
209
|
end
|
|
194
210
|
end
|
|
195
|
-
|
|
211
|
+
|
|
196
212
|
|
|
197
213
|
def over? # game over?
|
|
198
214
|
play_at <= Time.now
|
|
@@ -215,6 +231,9 @@ class Game < ActiveRecord::Base
|
|
|
215
231
|
## NB: remove if calc?
|
|
216
232
|
buf << 'game-team-winner ' if complete? && (score1 > score2)
|
|
217
233
|
buf << 'game-team-draw ' if complete? && (score1 == score2)
|
|
234
|
+
buf << 'game-knockout ' if knockout?
|
|
235
|
+
### fix: loser - add method for checking winner/loser on ko pairs using (1st leg/2nd leg totals)
|
|
236
|
+
buf << 'game-team-loser ' if complete? && (score1 < score2)
|
|
218
237
|
buf
|
|
219
238
|
end
|
|
220
239
|
|
|
@@ -223,10 +242,45 @@ class Game < ActiveRecord::Base
|
|
|
223
242
|
## NB: remove if calc?
|
|
224
243
|
buf << 'game-team-winner ' if complete? && (score2 > score1)
|
|
225
244
|
buf << 'game-team-draw ' if complete? && (score2 == score1)
|
|
245
|
+
buf << 'game-knockout ' if knockout?
|
|
246
|
+
### fix: loser - add method for checking winner/loser on ko pairs using (1st leg/2nd leg totals)
|
|
247
|
+
buf << 'game-team-loser ' if complete? && (score2 < score1)
|
|
226
248
|
buf
|
|
227
249
|
end
|
|
228
250
|
|
|
229
251
|
|
|
252
|
+
def play_at_str( format = nil )
|
|
253
|
+
## e.g. use like
|
|
254
|
+
# play_at_str or
|
|
255
|
+
# play_at_str( :db ) etc.
|
|
256
|
+
if format == :db
|
|
257
|
+
play_at.strftime( '%Y-%m-%d %H:%M %z' ) # NB: removed seconds (:%S)
|
|
258
|
+
else
|
|
259
|
+
play_at.strftime( "%a. %d. %b. / %H:%M" )
|
|
260
|
+
end
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
def score_str
|
|
265
|
+
return ' - ' if score1.blank? && score2.blank?
|
|
266
|
+
|
|
267
|
+
if score1p.present? && score2p.present? # im Elfmeterschiessen i.E.?
|
|
268
|
+
"#{score1_str} : #{score2_str} / #{score1et} : #{score2et} n.V. / #{score1p} : #{score2p} i.E."
|
|
269
|
+
elsif score1et.present? && score2et.present? # nach Verlaengerung n.V.?
|
|
270
|
+
"#{score1_str} : #{score2_str} / #{score1et} : #{score2et} n.V."
|
|
271
|
+
else
|
|
272
|
+
"#{score1_str} : #{score2_str}"
|
|
273
|
+
end
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
def score1_str
|
|
277
|
+
if score1.blank? then '-' else score1.to_s end
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
def score2_str
|
|
281
|
+
if score2.blank? then '-' else score2.to_s end
|
|
282
|
+
end
|
|
283
|
+
|
|
230
284
|
|
|
231
285
|
end # class Game
|
|
232
286
|
|
data/lib/sportdb/models/team.rb
CHANGED
|
@@ -11,7 +11,7 @@ class Team < ActiveRecord::Base
|
|
|
11
11
|
|
|
12
12
|
## todo/fix: must be 3 or more letters (plus allow digits e.g. salzburgii, muenchen1980, etc.) - why? why not??
|
|
13
13
|
validates :key, :format => { :with => REGEX_KEY, :message => 'expected three or more lowercase letters a-z' }
|
|
14
|
-
validates :code, :format => { :with => REGEX_CODE, :message => 'expected three uppercase letters A-Z (and 0-9_)' }, :allow_nil => true
|
|
14
|
+
validates :code, :format => { :with => REGEX_CODE, :message => 'expected two or three uppercase letters A-Z (and 0-9_; must start with A-Z)' }, :allow_nil => true
|
|
15
15
|
|
|
16
16
|
has_many :event_teams, :class_name => 'EventTeam' # join table (events+teams)
|
|
17
17
|
has_many :events, :through => :event_teams
|
data/lib/sportdb/reader.rb
CHANGED
|
@@ -75,12 +75,12 @@ class Reader
|
|
|
75
75
|
load_leagues( name, club: true, country_id: country.id )
|
|
76
76
|
end
|
|
77
77
|
elsif name =~ /(?:^|\/)leagues/ # NB: ^leagues or also possible world!/leagues - NB: make sure goes after leagues_for_country!!
|
|
78
|
-
if name =~ /
|
|
78
|
+
if name =~ /-cup!?\// # NB: -cup/ or -cup!/
|
|
79
|
+
# e.g. national team tournaments/leagues (e.g. world-cup/ or euro-cup/)
|
|
80
|
+
load_leagues( name )
|
|
81
|
+
else
|
|
79
82
|
# e.g. leagues_club
|
|
80
83
|
load_leagues( name, club: true )
|
|
81
|
-
else
|
|
82
|
-
# e.g. leagues
|
|
83
|
-
load_leagues( name )
|
|
84
84
|
end
|
|
85
85
|
elsif match_teams_for_country( name ) do |country_key| # name =~ /^([a-z]{2})\/teams/
|
|
86
86
|
# auto-add country code (from folder structure) for country-specific teams
|
|
@@ -89,16 +89,18 @@ class Reader
|
|
|
89
89
|
load_teams( name, club: true, country_id: country.id )
|
|
90
90
|
end
|
|
91
91
|
elsif name =~ /(?:^|\/)teams/
|
|
92
|
-
if name =~ /
|
|
92
|
+
if name =~ /-cup!?\// # NB: -cup/ or -cup!/
|
|
93
|
+
# assume national teams
|
|
94
|
+
# e.g. world-cup/teams amercia-cup/teams_northern
|
|
95
|
+
load_teams( name, national: true )
|
|
96
|
+
else
|
|
93
97
|
# club teams (many countries)
|
|
94
98
|
# e.g. club/europe/teams
|
|
95
99
|
load_teams( name, club: true )
|
|
96
|
-
else
|
|
97
|
-
# assume national teams
|
|
98
|
-
# e.g. world/teams amercia/teams_n
|
|
99
|
-
load_teams( name, national: true )
|
|
100
100
|
end
|
|
101
|
-
elsif name =~ /\/(\d{4}|\d{4}_\d{2})\//
|
|
101
|
+
elsif name =~ /\/(\d{4}|\d{4}_\d{2})\// || name =~ /\/(\d{4}|\d{4}_\d{2})$/
|
|
102
|
+
# e.g. must match /2012/ or /2012_13/
|
|
103
|
+
# or /2012 or /2012_13 e.g. brazil/2012 or brazil/2012_13
|
|
102
104
|
load_event( name )
|
|
103
105
|
event = fetch_event( name )
|
|
104
106
|
fixtures = fetch_event_fixtures( name )
|
|
@@ -205,7 +207,7 @@ class Reader
|
|
|
205
207
|
end # each key,value
|
|
206
208
|
|
|
207
209
|
if fixtures.empty?
|
|
208
|
-
logger.warn "no fixtures found for event - >#{name}<; assume fixture name is the same as event"
|
|
210
|
+
## logger.warn "no fixtures found for event - >#{name}<; assume fixture name is the same as event"
|
|
209
211
|
fixtures = [name]
|
|
210
212
|
else
|
|
211
213
|
## add path to fixtures (use path from event e.g)
|
|
@@ -323,6 +325,8 @@ class Reader
|
|
|
323
325
|
elsif key == 'team3'
|
|
324
326
|
## for now always assume false # todo: fix - use value and convert to boolean if not boolean
|
|
325
327
|
event_attribs['team3'] = false
|
|
328
|
+
elsif key == 'fixtures'
|
|
329
|
+
## skip fixtures for now (NOT yet stored in db; for now reload file to get fixtures)
|
|
326
330
|
else
|
|
327
331
|
## todo: add a source location struct to_s or similar (file, line, col)
|
|
328
332
|
logger.error "unknown event attrib #{key}; skipping attrib"
|
|
@@ -776,8 +780,8 @@ private
|
|
|
776
780
|
game_attribs = {
|
|
777
781
|
score1: scores[0],
|
|
778
782
|
score2: scores[1],
|
|
779
|
-
|
|
780
|
-
|
|
783
|
+
score1et: scores[2],
|
|
784
|
+
score2et: scores[3],
|
|
781
785
|
score1p: scores[4],
|
|
782
786
|
score2p: scores[5],
|
|
783
787
|
play_at: date,
|
data/lib/sportdb/schema.rb
CHANGED
|
@@ -178,8 +178,8 @@ create_table :games do |t|
|
|
|
178
178
|
t.boolean :home, :null => false, :default => true # is team1 play at home (that is, at its home stadium)
|
|
179
179
|
t.integer :score1
|
|
180
180
|
t.integer :score2
|
|
181
|
-
t.integer :
|
|
182
|
-
t.integer :
|
|
181
|
+
t.integer :score1et # extratime - team 1 (opt)
|
|
182
|
+
t.integer :score2et # extratime - team 2 (opt)
|
|
183
183
|
t.integer :score1p # penalty - team 1 (opt)
|
|
184
184
|
t.integer :score2p # penalty - team 2 (opt) elfmeter (opt)
|
|
185
185
|
t.integer :score1i # half time / first third (opt)
|
data/lib/sportdb/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,60 +1,71 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sportdb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.7.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.7.1
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Gerald Bauer
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date: 2013-08-
|
|
11
|
+
date: 2013-08-21 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: worlddb
|
|
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: '1.7'
|
|
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: '1.7'
|
|
25
27
|
- !ruby/object:Gem::Dependency
|
|
26
28
|
name: gli
|
|
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: 2.5.6
|
|
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: 2.5.6
|
|
36
41
|
- !ruby/object:Gem::Dependency
|
|
37
42
|
name: rdoc
|
|
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: '4.0'
|
|
44
48
|
type: :development
|
|
45
49
|
prerelease: false
|
|
46
|
-
version_requirements:
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ~>
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '4.0'
|
|
47
55
|
- !ruby/object:Gem::Dependency
|
|
48
56
|
name: hoe
|
|
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: '3.6'
|
|
55
62
|
type: :development
|
|
56
63
|
prerelease: false
|
|
57
|
-
version_requirements:
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ~>
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '3.6'
|
|
58
69
|
description: sportdb - sport.db command line tool
|
|
59
70
|
email: opensport@googlegroups.com
|
|
60
71
|
executables:
|
|
@@ -123,6 +134,7 @@ files:
|
|
|
123
134
|
homepage: https://github.com/geraldb/sport.db.ruby
|
|
124
135
|
licenses:
|
|
125
136
|
- Public Domain
|
|
137
|
+
metadata: {}
|
|
126
138
|
post_install_message: ! '******************************************************************************
|
|
127
139
|
|
|
128
140
|
|
|
@@ -140,22 +152,20 @@ rdoc_options:
|
|
|
140
152
|
require_paths:
|
|
141
153
|
- lib
|
|
142
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
|
-
none: false
|
|
144
155
|
requirements:
|
|
145
156
|
- - ! '>='
|
|
146
157
|
- !ruby/object:Gem::Version
|
|
147
158
|
version: 1.9.2
|
|
148
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
|
-
none: false
|
|
150
160
|
requirements:
|
|
151
161
|
- - ! '>='
|
|
152
162
|
- !ruby/object:Gem::Version
|
|
153
163
|
version: '0'
|
|
154
164
|
requirements: []
|
|
155
165
|
rubyforge_project: sportdb
|
|
156
|
-
rubygems_version:
|
|
166
|
+
rubygems_version: 2.0.6
|
|
157
167
|
signing_key:
|
|
158
|
-
specification_version:
|
|
168
|
+
specification_version: 4
|
|
159
169
|
summary: sportdb - sport.db command line tool
|
|
160
170
|
test_files:
|
|
161
171
|
- test/test_lang.rb
|