sportdb 1.7.0 → 1.7.1

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: 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