sportdb 1.4.2 → 1.5.0
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.
- data/Rakefile +1 -1
- data/lib/sportdb/models/team.rb +4 -3
- data/lib/sportdb/reader.rb +1 -1
- data/lib/sportdb/schema.rb +17 -4
- data/lib/sportdb/utils.rb +17 -5
- data/lib/sportdb/version.rb +1 -1
- metadata +11 -11
data/Rakefile
CHANGED
data/lib/sportdb/models/team.rb
CHANGED
@@ -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
|
-
|
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 =>
|
13
|
-
validates :code, :format => { :with => REGEX_CODE, :message => 'expected three uppercase letters A-Z (and
|
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
|
data/lib/sportdb/reader.rb
CHANGED
@@ -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]
|
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 )
|
data/lib/sportdb/schema.rb
CHANGED
@@ -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 :
|
84
|
-
t.integer :
|
85
|
-
t.integer :
|
86
|
-
t.integer :
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
|
data/lib/sportdb/version.rb
CHANGED
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
|
+
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-
|
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: &
|
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.
|
21
|
+
version: 1.5.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *79472040
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: commander
|
27
|
-
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: *
|
35
|
+
version_requirements: *79471820
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rdoc
|
38
|
-
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: *
|
46
|
+
version_requirements: *79471600
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: hoe
|
49
|
-
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: *
|
57
|
+
version_requirements: *79471380
|
58
58
|
description: sportdb - sport.db command line tool
|
59
59
|
email: opensport@googlegroups.com
|
60
60
|
executables:
|