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.
@@ -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
@@ -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.2012/13' )
79
- PL = Event.find_by_key( 'en.2012/13' )
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
 
@@ -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
- score1ot
19
+ score1et
20
20
  end
21
21
 
22
22
  def score4
23
- score2ot
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.score1ot = value
43
+ self.score1et = value
36
44
  end
37
45
 
38
46
  def score4=(value)
39
- self.score2ot = value
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
- :score1ot => value_scores[2],
99
- :score2ot => value_scores[3],
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
- :score1ot =>pair[1][2][2],
163
- :score2ot =>pair[1][2][3],
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
 
@@ -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
@@ -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 =~ /club/
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 =~ /club/
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})\// # e.g. must match /2012/ or /2012_13/
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
- score1ot: scores[2],
780
- score2ot: scores[3],
783
+ score1et: scores[2],
784
+ score2et: scores[3],
781
785
  score1p: scores[4],
782
786
  score2p: scores[5],
783
787
  play_at: date,
@@ -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 :score1ot # overtime - team 1 (opt)
182
- t.integer :score2ot # overtime - team 2 (opt)
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)
@@ -1,6 +1,6 @@
1
1
 
2
2
  module SportDb
3
- VERSION = '1.7.0'
3
+ VERSION = '1.7.1'
4
4
  end
5
5
 
6
6
 
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.0
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-06 00:00:00.000000000Z
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: &19798968 !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: '1.7'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *19798968
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: &19798656 !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: 2.5.6
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *19798656
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: &19798248 !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: '4.0'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *19798248
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: &19797936 !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: '3.6'
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *19797936
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: 1.7.2
166
+ rubygems_version: 2.0.6
157
167
  signing_key:
158
- specification_version: 3
168
+ specification_version: 4
159
169
  summary: sportdb - sport.db command line tool
160
170
  test_files:
161
171
  - test/test_lang.rb