sportdb 1.4.2 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -23,7 +23,7 @@ Hoe.spec 'sportdb' do
23
23
  # self.history_file = 'History.md'
24
24
 
25
25
  self.extra_deps = [
26
- ['worlddb', '~> 1.4.0'], # NB: worlddb already includes
26
+ ['worlddb', '~> 1.5.0'], # NB: worlddb already includes
27
27
  # - commander
28
28
  # - logutils
29
29
  # - textutils
@@ -6,11 +6,12 @@ class Team < ActiveRecord::Base
6
6
  has_many :home_games, :class_name => 'Game', :foreign_key => 'team1_id'
7
7
  has_many :away_games, :class_name => 'Game', :foreign_key => 'team2_id'
8
8
 
9
- REGEX_CODE = /^[A-Z][A-Z0-9_]{2}$/ # must start w/ letter a-z (2 n 3 can be number or underscore _)
9
+ REGEX_KEY = /^[a-z]{3,}$/
10
+ REGEX_CODE = /^[A-Z][A-Z0-9][A-Z0-9_]?$/ # must start w/ letter a-z (2 n 3 can be number or underscore _)
10
11
 
11
12
  ## todo/fix: must be 3 or more letters (plus allow digits e.g. salzburgii, muenchen1980, etc.) - why? why not??
12
- validates :key, :format => { :with => /^[a-z]{2,}$/, :message => 'expected two or more lowercase letters a-z' }
13
- validates :code, :format => { :with => REGEX_CODE, :message => 'expected three uppercase letters A-Z (and _)' }, :allow_nil => true
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
15
 
15
16
  has_many :event_teams, :class_name => 'EventTeam' # join table (events+teams)
16
17
  has_many :events, :through => :event_teams
@@ -376,7 +376,7 @@ private
376
376
  logger.warn "city with key #{value_city_key} missing"
377
377
  ## todo: log errors to db log???
378
378
  end
379
- elsif value =~ /^[A-Z]{3}$/ ## assume three-letter code e.g. FCB, RBS, etc.
379
+ elsif value =~ /^[A-Z][A-Z0-9][A-Z0-9_]?$/ ## assume two or three-letter code e.g. FCB, RBS, etc.
380
380
  attribs[ :code ] = value
381
381
  elsif value =~ /^[a-z]{2}$/ ## assume two-letter country key e.g. at,de,mx,etc.
382
382
  value_country = Country.find_by_key!( value )
@@ -80,14 +80,27 @@ create_table :games do |t|
80
80
  t.boolean :home, :null => false, :default => true # is team1 play at home (that is, at its home stadium)
81
81
  t.integer :score1
82
82
  t.integer :score2
83
- t.integer :score3 # verlaengerung (opt)
84
- t.integer :score4
85
- t.integer :score5 # elfmeter (opt)
86
- t.integer :score6
83
+ t.integer :score1ot # overtime - team 1 (opt)
84
+ t.integer :score2ot # overtime - team 2 (opt)
85
+ t.integer :score1p # penalty - team 1 (opt)
86
+ t.integer :score2p # penalty - team 2 (opt) elfmeter (opt)
87
+ t.integer :score1i # half time / first third (opt)
88
+ t.integer :score2i # half time - team 2
89
+ t.integer :score1ii # second third (opt)
90
+ t.integer :score2ii # second third - team2 (opt)
87
91
  t.references :next_game # for hinspiel bei rueckspiel in knockout game
88
92
  t.references :prev_game
93
+
94
+ ### todo> find a better name (toto is not international/english?)
95
+ ## rename to score12x or pt12x or result12x
89
96
  t.string :toto12x # 1,2,X,nil calculate on save
90
97
  t.string :key # import/export key
98
+
99
+ t.integer :score3 # deprecated - remove todo: change to score1o or score1o overtime # verlaengerung (opt)
100
+ t.integer :score4 # deprecated - remove todo> change to score2o
101
+ t.integer :score5 # deprecated - remove elfmeter (opt) ## todo> change to score1p - penality
102
+ t.integer :score6 # deprecated - remove
103
+
91
104
  t.timestamps
92
105
  end
93
106
 
data/lib/sportdb/utils.rb CHANGED
@@ -24,7 +24,7 @@ module SportDB::FixtureHelpers
24
24
  elsif line =~ SportDB.lang.regex_knockout_round
25
25
  logger.debug " setting knockout flag to true"
26
26
  true
27
- elsif line =~ /K\.O\.|Knockout/
27
+ elsif line =~ /K\.O\.|K\.o\.|Knockout/
28
28
  ## NB: add two language independent markers, that is, K.O. and Knockout
29
29
  logger.debug " setting knockout flag to true (lang independent marker)"
30
30
  true
@@ -126,16 +126,23 @@ module SportDB::FixtureHelpers
126
126
  # NB: side effect - removes date from line string
127
127
 
128
128
  # e.g. 2012-09-14 20:30 => YYYY-MM-DD HH:MM
129
- regex_db = /\b(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2})\b/
129
+ # nb: allow 2012-9-3 7:30 e.g. no leading zero required
130
+ regex_db = /\b(\d{4})-(\d{1,2})-(\d{1,2})\s+(\d{1,2}):(\d{2})\b/
130
131
 
131
132
  # e.g. 2012-09-14 w/ implied hours (set to 12:00)
132
- regex_db2 = /\b(\d{4})-(\d{2})-(\d{2})\b/
133
+ # nb: allow 2012-9-3 e.g. no leading zero required
134
+ regex_db2 = /\b(\d{4})-(\d{1,2})-(\d{1,2})\b/
133
135
 
134
136
  # e.g. 14.09. 20:30 => DD.MM. HH:MM
135
- regex_de = /\b(\d{2})\.(\d{2})\.\s+(\d{2}):(\d{2})\b/
137
+ # nb: allow 2.3.2012 e.g. no leading zero required
138
+ # nb: allow hour as 20.30 or 3.30 instead of 03.30
139
+ regex_de = /\b(\d{1,2})\.(\d{1,2})\.\s+(\d{1,2})[:.](\d{2})\b/
136
140
 
137
141
  # e.g. 14.09.2012 20:30 => DD.MM.YYYY HH:MM
138
- regex_de2 = /\b(\d{2})\.(\d{2})\.(\d{4})\s+(\d{2}):(\d{2})\b/
142
+ # nb: allow 2.3.2012 e.g. no leading zero required
143
+ # nb: allow hour as 20.30
144
+ regex_de2 = /\b(\d{1,2})\.(\d{1,2})\.(\d{4})\s+(\d{1,2})[:.](\d{2})\b/
145
+
139
146
 
140
147
  if line =~ regex_db
141
148
  value = "#{$1}-#{$2}-#{$3} #{$4}:#{$5}"
@@ -165,6 +172,11 @@ module SportDB::FixtureHelpers
165
172
 
166
173
  return DateTime.strptime( value, '%Y-%m-%d %H:%M' )
167
174
  elsif line =~ regex_de
175
+
176
+ #### fix/todo:
177
+ # get year from event start date!!!!
178
+ # do NOT hard code!!!!
179
+
168
180
  value = "2012-#{$2}-#{$1} #{$3}:#{$4}"
169
181
  logger.debug " date: >#{value}<"
170
182
 
@@ -1,4 +1,4 @@
1
1
 
2
2
  module SportDB
3
- VERSION = '1.4.2'
3
+ VERSION = '1.5.0'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-03 00:00:00.000000000 Z
12
+ date: 2013-03-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: worlddb
16
- requirement: &80589280 !ruby/object:Gem::Requirement
16
+ requirement: &79472040 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.4.0
21
+ version: 1.5.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *80589280
24
+ version_requirements: *79472040
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: commander
27
- requirement: &80589060 !ruby/object:Gem::Requirement
27
+ requirement: &79471820 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 4.1.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *80589060
35
+ version_requirements: *79471820
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rdoc
38
- requirement: &80588840 !ruby/object:Gem::Requirement
38
+ requirement: &79471600 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '3.10'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *80588840
46
+ version_requirements: *79471600
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: hoe
49
- requirement: &80588620 !ruby/object:Gem::Requirement
49
+ requirement: &79471380 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '3.3'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *80588620
57
+ version_requirements: *79471380
58
58
  description: sportdb - sport.db command line tool
59
59
  email: opensport@googlegroups.com
60
60
  executables: