sportdb 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,6 +15,7 @@ db/at/2012_13/cup.txt
15
15
  db/at/2012_13/cup_fixtures.rb
16
16
  db/at/badges.rb
17
17
  db/at/teams.rb
18
+ db/cities.rb
18
19
  db/cl/2011_12/cl.rb
19
20
  db/cl/2011_12/el.rb
20
21
  db/cl/2012_13/cl.rb
@@ -56,6 +57,7 @@ lib/sportdb/cli/opts.rb
56
57
  lib/sportdb/cli/runner.rb
57
58
  lib/sportdb/loader.rb
58
59
  lib/sportdb/models/badge.rb
60
+ lib/sportdb/models/city.rb
59
61
  lib/sportdb/models/country.rb
60
62
  lib/sportdb/models/event.rb
61
63
  lib/sportdb/models/event_team.rb
@@ -2,16 +2,16 @@
2
2
 
3
3
 
4
4
  bl = [
5
- [ 'salzburg', 'FC RB Salzburg|RB Salzburg|Red Bull Salzburg', 'RBS' ],
6
- [ 'rapid', 'SK Rapid Wien|Rapid Wien', 'RAP' ],
7
- [ 'admira', 'FC Admira Wacker|Admira Wacker|FC Admira Wacker Mödling', 'ADM' ],
8
- [ 'austria', 'FK Austria Wien|Austria Wien', 'FAK' ],
9
- [ 'sturm', 'SK Sturm Graz|Sturm Graz', 'STU' ],
10
- [ 'ried', 'SV Ried|SV Josko Ried|SV Josko Fenster Ried', 'RIE' ],
11
- [ 'innsbruck', 'FC Wacker Innsbruck|FC Wacker|Wacker Innsbruck', 'IBK' ],
12
- [ 'mattersburg', 'SV Mattersburg', 'SVM' ],
13
- [ 'wrneustadt', 'SC Wiener Neustadt|Wiener Neustadt|Wr. Neustadt', 'WRN' ],
14
- [ 'wac', 'Wolfsberger AC', 'WAC' ]
5
+ [ 'salzburg', 'FC RB Salzburg|RB Salzburg|Red Bull Salzburg', 'RBS', 'city:salzburg' ],
6
+ [ 'rapid', 'SK Rapid Wien|Rapid Wien', 'RAP', 'city:wien' ],
7
+ [ 'admira', 'FC Admira Wacker|Admira Wacker|FC Admira Wacker Mödling', 'ADM', 'city:moedling' ],
8
+ [ 'austria', 'FK Austria Wien|Austria Wien', 'FAK', 'city:wien' ],
9
+ [ 'sturm', 'SK Sturm Graz|Sturm Graz', 'STU', 'city:graz' ],
10
+ [ 'ried', 'SV Ried|SV Josko Ried|SV Josko Fenster Ried', 'RIE', 'city:ried' ],
11
+ [ 'innsbruck', 'FC Wacker Innsbruck|FC Wacker|Wacker Innsbruck', 'IBK', 'city:innsbruck' ],
12
+ [ 'mattersburg', 'SV Mattersburg', 'SVM', 'city:mattersburg' ],
13
+ [ 'wrneustadt', 'SC Wiener Neustadt|Wiener Neustadt|Wr. Neustadt', 'WRN', 'city:wrneustadt' ],
14
+ [ 'wac', 'Wolfsberger AC', 'WAC', 'city:wolfsberg' ]
15
15
  ]
16
16
 
17
17
  ersteliga = [
@@ -0,0 +1,162 @@
1
+ # encoding: utf-8
2
+
3
+
4
+
5
+ ### todo/fix: add regions (Stmk., NOE, OOE, etc,)
6
+
7
+ cities_at = [
8
+ ['wien', 'Wien|Vienna'],
9
+ ['innsbruck', 'Innsbruck'],
10
+ ['moedling', 'Mödling|Moedling'],
11
+ ['salzburg', 'Salzburg'],
12
+ ['graz', 'Graz'],
13
+ ['linz', 'Linz'],
14
+ ['mattersburg', 'Mattersburg'],
15
+ ['ried', 'Ried'],
16
+ ['wrneustadt', 'Wiener Neustadt|Wr. Neustadt'],
17
+ ['wolfsberg', 'Wolfsberg']
18
+ ]
19
+
20
+ at = Country.find_by_key!( 'at' )
21
+ City.create_from_ary!( cities_at, country: at )
22
+
23
+
24
+ cities_en = [
25
+ ['manchester', 'Manchester'],
26
+ ['london', 'London'],
27
+ ['liverpool', 'Liverpool'],
28
+ ['birmingham', 'Birmingham'], # e.g.Aston Villa
29
+ ['blackburn', 'Blackburn'],
30
+ ['westbrom', 'West Bromwich'],
31
+ ['newcastle', 'Newcastle upon Tyne'],
32
+ ['stoke', 'Stoke-on-Trent'],
33
+ ['sunderland', 'Sunderland'],
34
+ ['wigan', 'Wigan'],
35
+ ['southampton', 'Southampton'],
36
+ ['reading', 'Reading'],
37
+ ['norwich', 'Norwich'],
38
+ ['swansea', 'Swansea']
39
+ ]
40
+
41
+ en = Country.find_by_key!( 'en' )
42
+ City.create_from_ary!( cities_en, country: en )
43
+
44
+
45
+ cities_de = [
46
+ ['hoffenheim', 'Hoffenheim'],
47
+ ['nuernberg', 'Nürnberg'],
48
+ ['stuttgart', 'Stuttgart'],
49
+ ['augsburg', 'Augsburg'],
50
+ ['wolfsburg', 'Wolfsburg'],
51
+ ['fuerth', 'Fürth'],
52
+ ['muenchen', 'München'],
53
+ ['gelsenkirchen', 'Gelsenkirchen'],
54
+ ['dortmund', 'Dortmund'],
55
+ ['frankfurt', 'Frankfurt'],
56
+ ['hannover', 'Hannover'],
57
+ ['leverkusen', 'Leverkusen'],
58
+ ['duesseldorf', 'Düsseldorf'],
59
+ ['hamburg', 'Hamburg'],
60
+ ['mainz', 'Mainz'],
61
+ ['mgladbach', "Mönchengladbach|M'gladbach" ],
62
+ ['freiburg', 'Freiburg'],
63
+ ['bremen', 'Bremen']
64
+ ]
65
+
66
+ de = Country.find_by_key!( 'de' )
67
+ City.create_from_ary!( cities_de, country: de )
68
+
69
+
70
+ cities_es = [
71
+ ['bilbao', 'Bilbao'],
72
+ ['valencia', 'Valencia'],
73
+ ['barcelona', 'Barcelona'],
74
+ ['madrid', 'Madrid'],
75
+ ['malaga', 'Málaga']
76
+ ]
77
+
78
+ es = Country.find_by_key!( 'es' )
79
+ City.create_from_ary!( cities_es, country: es )
80
+
81
+
82
+ cities_fr = [
83
+ ['lille', 'Lille'],
84
+ ['paris', 'Paris'],
85
+ ['marseille', 'Marseille'],
86
+ ['montpellier', 'Montpellier']
87
+ ]
88
+
89
+ fr = Country.find_by_key!( 'fr' )
90
+ City.create_from_ary!( cities_fr, country: fr )
91
+
92
+
93
+ cities_it = [
94
+ ['turin', 'Turin'],
95
+ ['milano', 'Mailand|Milano'],
96
+ ['napoli', 'Neapel|Napoli']
97
+ ]
98
+
99
+ it = Country.find_by_key!( 'it' )
100
+ City.create_from_ary!( cities_it, country: it )
101
+
102
+
103
+ cities_pt = [
104
+ ['porto', 'Porto'],
105
+ ['braga', 'Braga'],
106
+ ['lisboa', 'Lissabon|Lisboa']
107
+ ]
108
+
109
+ pt = Country.find_by_key!( 'pt' )
110
+ City.create_from_ary!( cities_pt, country: pt )
111
+
112
+
113
+ cities_ru = [
114
+ ['moskva', 'Moskau|Moskva'],
115
+ ['stpetersburg','St. Petersburg']
116
+ ]
117
+
118
+ ru = Country.find_by_key!( 'ru' )
119
+ City.create_from_ary!( cities_ru, country: ru )
120
+
121
+
122
+ cities_be = [
123
+ ['brussel', 'Brüssel|Brussel|Bruxelles|Brussels'] # de|nl|fr|en - RCA Anderlecht
124
+ ]
125
+
126
+ be = Country.find_by_key!( 'be' )
127
+ City.create_from_ary!( cities_be, country: be )
128
+
129
+
130
+ cities_ua = [
131
+ ['kiev', 'Kiew|Kiev|Kyiv' ],
132
+ ['donetsk', 'Donezk|Donetsk'],
133
+ ['kharkov', 'Kharkiv|Kharkov']
134
+ ]
135
+
136
+ ua = Country.find_by_key!( 'ua' )
137
+ City.create_from_ary!( cities_ua, country: ua )
138
+
139
+
140
+ cities_mx = [
141
+ ['mexico', 'México' ],
142
+ ['cancun', 'Cancún' ],
143
+ ['guadalajara', 'Guadalajara' ],
144
+ ['tuxtla', 'Tuxtla Gutiérrez' ],
145
+ ['leon', 'León' ],
146
+ ['morelia', 'Morelia' ],
147
+ ['monterrey', 'Monterrey' ],
148
+ ['pachuca', 'Pachuca' ],
149
+ ['puebla', 'Puebla' ],
150
+ ['queretaro', 'Querétaro' ],
151
+ ['sanluispotosi', 'San Luis Potosì' ],
152
+ ['torreon', 'Torreón' ],
153
+ ['tijuana', 'Tijuana' ],
154
+ ['toluca', 'Toluca' ],
155
+ ['sannicolas', 'San Nicolás de los Garza' ]
156
+ ]
157
+
158
+ mx = Country.find_by_key!( 'mx' )
159
+ City.create_from_ary!( cities_mx, country: mx )
160
+
161
+
162
+ Prop.create!( key: 'db.cities.version', value: '1' )
@@ -37,52 +37,49 @@ cy = Country.find_by_key!( 'cy' )
37
37
 
38
38
 
39
39
  teams = [
40
- [ 'porto', 'FC Porto|FC Porto POR', pt ],
41
- [ 'kiew', 'Dynamo Kiew|FC Dynamo Kiew UKR|Dynamo Kiev', ua ],
42
- [ 'paris', 'Paris St. Germain|Paris S.Germai FRA|Paris Saint Germain', fr ],
43
- [ 'zagreb', 'Dinamo Zagreb|Dinamo Zagreb CRO|NK Dinamo Zagreb', hr ],
44
-
45
- [ 'olympiacos', 'Olympiakos Piräus|Olympiakos P. GRE|Olympiakos Piraeus', gr ],
46
- [ 'montpellier', 'HSC Montpellier|Montpellier FRA', fr ],
40
+ [ 'malaga', 'FC Málaga|Malaga CF ESP|CF Malaga', es, 'city:malaga' ],
41
+ [ 'madrid', 'Real Madrid|Real Madrid ESP', es, 'city:madrid' ],
42
+ [ 'valencia', 'FC Valencia|FC Valencia ESP|CF Valencia', es, 'city:valencia' ],
43
+ [ 'barcelona', 'FC Barcelona|FC Barcelona ESP', es, 'city:barcelona' ],
44
+ [ 'atletico', 'Atlético Madrid', es, 'city:madrid' ],
45
+ [ 'athletic', 'Athletic Bilbao', es, 'city:bilbao' ],
46
+
47
+ [ 'porto', 'FC Porto|FC Porto POR', pt, 'city:porto' ],
48
+ [ 'benfica', 'Benfica Lissabon|Benfica Lis. POR', pt, 'city:lisboa' ],
49
+ [ 'braga', 'Sporting Braga|Sporting Braga POR', pt, 'city:braga' ],
50
+ [ 'sporting', 'Sporting Lisboa', pt, 'city:lisboa' ],
51
+
52
+ [ 'milan', 'AC Mailand|AC Milan ITA|AC Milan', it, 'city:milano' ],
53
+ [ 'inter', 'FC Internazionale Milano', it, 'city:milano' ],
54
+ [ 'napoli', 'SSC Napoli', it, 'city:napoli' ],
55
+ [ 'juventus', 'Juventus Turin|Juventus Turin ITA', it, 'city:turin' ],
56
+
57
+ [ 'paris', 'Paris St. Germain|Paris S.Germai FRA|Paris Saint Germain', fr, 'city:paris' ],
58
+ [ 'montpellier', 'HSC Montpellier|Montpellier FRA', fr, 'city:montpellier' ],
59
+ [ 'lille', 'OSC Lille|Lille OSC FRA', fr, 'city:lille' ],
60
+ [ 'marseille', 'Olympique Marseille', fr, 'city:marseille' ],
61
+
62
+ [ 'kiew', 'Dynamo Kiew|FC Dynamo Kiew UKR|Dynamo Kiev', ua, 'city:kiev' ],
63
+ [ 'donezk', 'Schachtjor Donezk|Shakhtar Don. UKR|Shakhtar Donetsk', ua, 'city:donetsk' ],
64
+ [ 'metalist', 'FC Metalist Kharkiv', ua, 'city:kharkov' ],
65
+
66
+ [ 'zenit', 'Zenit St. Petersburg|Zenit Petersb. RUS|FC Zenit St Petersburg', ru, 'city:stpetersburg' ],
67
+ [ 'spartak', 'Spartak Moskau|Spartak Moskau RUS|Spartak Moscow', ru, 'city:moskva' ],
68
+ [ 'moskva', 'PFC CSKA Moskva', ru, 'city:moskva' ],
69
+
70
+ [ 'anderlecht', 'RSC Anderlecht|RSC Anderlecht BEL', be, 'city:brussel' ],
47
71
 
48
- [ 'milan', 'AC Mailand|AC Milan ITA|AC Milan', it ],
49
- [ 'zenit', 'Zenit St. Petersburg|Zenit Petersb. RUS|FC Zenit St Petersburg', ru ],
50
- [ 'anderlecht', 'RSC Anderlecht|RSC Anderlecht BEL', be ],
51
- [ 'malaga', 'FC Málaga|Malaga CF ESP|CF Malaga', es ],
52
-
53
- [ 'madrid', 'Real Madrid|Real Madrid ESP', es ],
54
72
  [ 'ajax', 'Ajax Amsterdam|Ajax Amsterdam NED', nl ],
73
+ [ 'az', 'AZ Alkmaar', nl ],
55
74
 
56
- [ 'donezk', 'Schachtjor Donezk|Shakhtar Don. UKR|Shakhtar Donetsk', ua ],
57
- [ 'juventus', 'Juventus Turin|Juventus Turin ITA', it ],
75
+ [ 'zagreb', 'Dinamo Zagreb|Dinamo Zagreb CRO|NK Dinamo Zagreb', hr ],
76
+ [ 'olympiacos', 'Olympiakos Piräus|Olympiakos P. GRE|Olympiakos Piraeus', gr ],
58
77
  [ 'nordsjalland', 'FC Nordsjælland|Nordsjaelland DEN|FC Nordsjaelland', dk ],
59
-
60
- [ 'valencia', 'FC Valencia|FC Valencia ESP|CF Valencia', es ],
61
- [ 'lille', 'OSC Lille|Lille OSC FRA', fr ],
62
78
  [ 'borissow', 'BATE Borissow|Bate Borisov BLR|Bate Borisov', by ],
63
-
64
- [ 'barcelona', 'FC Barcelona|FC Barcelona ESP', es ],
65
- [ 'benfica', 'Benfica Lissabon|Benfica Lis. POR', pt ],
66
- [ 'spartak', 'Spartak Moskau|Spartak Moskau RUS|Spartak Moscow', ru ],
67
79
  [ 'celtic', 'Celtic Glasgow|Celtic Glasgow SCO', sc ],
68
-
69
- [ 'braga', 'Sporting Braga|Sporting Braga POR', pt ],
70
80
  [ 'galatasaray', 'Galatasaray|Galatasaray TUR', tr ],
71
81
  [ 'cluj', 'CFR Cluj|CFR Cluj ROU', ro ],
72
-
73
- ###################
74
- # more teams from cl/el 2011-12
75
- #
76
- [ 'atletico', 'Atlético Madrid', es ],
77
- [ 'athletic', 'Athletic Bilbao', es ],
78
- [ 'sporting', 'Sporting Lisboa', pt ],
79
- [ 'inter', 'FC Internazionale Milano', it ],
80
- [ 'napoli', 'SSC Napoli', it ],
81
- [ 'marseille', 'Olympique Marseille', fr ],
82
82
  [ 'basel', 'FC Basel 1893', ch ],
83
- [ 'az', 'AZ Alkmaar', nl ],
84
- [ 'metalist', 'FC Metalist Kharkiv', ua ],
85
- [ 'moskva', 'PFC CSKA Moskva', ru ],
86
83
  [ 'apoel', 'APOEL Nikosia', cy ]
87
84
 
88
85
  ]
@@ -8,24 +8,24 @@
8
8
  ## nb: three letter codes (tags) taken from official bundesliga.de site
9
9
 
10
10
  teams = [
11
- [ 'bayern', 'FC Bayern München|Bayern München|Bayern München GER', 'FCB' ],
12
- [ 'schalke', 'FC Schalke 04|FC Schalke 04 GER', 'S04' ],
13
- [ 'dortmund', 'Borussia Dortmund|Bor. Dortmund|Bor. Dortmund GER', 'BVB' ],
14
- [ 'frankfurt', 'Eintracht Frankfurt|E. Frankfurt', 'FFM' ],
15
- [ 'hannover', 'Hannover 96', 'H96' ],
16
- [ 'leverkusen', 'Bayer 04 Leverkusen|Bay. Leverkusen', 'B04' ],
17
- [ 'duesseldorf', 'Fortuna Düsseldorf|F. Düsseldorf', 'F95' ],
18
- [ 'hsv', 'Hamburger SV', 'HSV' ],
19
- [ 'mainz', '1. FSV Mainz 05', 'M05' ],
20
- [ 'mgladbach', "Borussia M'gladbach|Bor. M'gladbach", 'BMG' ],
21
- [ 'freiburg', 'SC Freiburg', 'SCF' ],
22
- [ 'bremen', 'Werder Bremen', 'BRE' ],
23
- [ 'hoffenheim', '1899 Hoffenheim', 'HOF' ],
24
- [ 'nuernberg', '1. FC Nürnberg', 'FCN' ],
25
- [ 'stuttgart', 'VfB Stuttgart', 'VFB' ],
26
- [ 'augsburg', 'FC Augsburg', 'FCA' ],
27
- [ 'wolfsburg', 'VfL Wolfsburg', 'WOB' ],
28
- [ 'fuerth', 'Greuther Fürth', 'SGF' ]
11
+ [ 'bayern', 'FC Bayern München|Bayern München|Bayern München GER', 'FCB', 'city:muenchen' ],
12
+ [ 'schalke', 'FC Schalke 04|FC Schalke 04 GER', 'S04', 'city:gelsenkirchen' ],
13
+ [ 'dortmund', 'Borussia Dortmund|Bor. Dortmund|Bor. Dortmund GER', 'BVB', 'city:dortmund' ],
14
+ [ 'frankfurt', 'Eintracht Frankfurt|E. Frankfurt', 'FFM', 'city:frankfurt' ],
15
+ [ 'hannover', 'Hannover 96', 'H96', 'city:hannover' ],
16
+ [ 'leverkusen', 'Bayer 04 Leverkusen|Bay. Leverkusen', 'B04', 'city:leverkusen' ],
17
+ [ 'duesseldorf', 'Fortuna Düsseldorf|F. Düsseldorf', 'F95', 'city:duesseldorf' ],
18
+ [ 'hsv', 'Hamburger SV', 'HSV', 'city:hamburg' ],
19
+ [ 'mainz', '1. FSV Mainz 05', 'M05', 'city:mainz' ],
20
+ [ 'mgladbach', "Borussia M'gladbach|Bor. M'gladbach", 'BMG', 'city:mgladbach' ],
21
+ [ 'freiburg', 'SC Freiburg', 'SCF', 'city:freiburg' ],
22
+ [ 'bremen', 'Werder Bremen', 'BRE', 'city:bremen' ],
23
+ [ 'hoffenheim', '1899 Hoffenheim', 'HOF', 'city:hoffenheim' ],
24
+ [ 'nuernberg', '1. FC Nürnberg', 'FCN', 'city:nuernberg' ],
25
+ [ 'stuttgart', 'VfB Stuttgart', 'VFB', 'city:stuttgart' ],
26
+ [ 'augsburg', 'FC Augsburg', 'FCA', 'city:augsburg' ],
27
+ [ 'wolfsburg', 'VfL Wolfsburg', 'WOB', 'city:wolfsburg' ],
28
+ [ 'fuerth', 'Greuther Fürth', 'SGF', 'city:fuerth' ]
29
29
  ]
30
30
 
31
31
  de = Country.find_by_key!( 'de' )
@@ -10,26 +10,26 @@
10
10
  ## nb: three letter codes (tags) taken from official premierleague.com site
11
11
 
12
12
  teams = [
13
- [ 'chelsea', 'Chelsea|Chelsea FC|FC Chelsea|FC Chelsea ENG', 'CHE' ],
14
- [ 'manunited', 'Manchester United|Man Utd|Manchester U. ENG', 'MUN' ],
15
- [ 'mancity', 'Manchester City|Man City|Man. City ENG', 'MCI' ],
16
- [ 'arsenal', 'Arsenal|Arsenal FC|FC Arsenal|FC Arsenal ENG', 'ARS' ],
17
- [ 'everton', 'Everton|Everton FC|FC Everton', 'EVE' ],
18
- [ 'tottenham', 'Tottenham Hotspur|Tottenham', 'TOT' ],
19
- [ 'westbrom', 'West Bromwich Albion|West Brom', 'WBA' ],
20
- [ 'westham', 'West Ham United|West Ham', 'WHU' ],
21
- [ 'fulham', 'Fulham|Fulham FC|FC Fulham', 'FUL' ],
22
- [ 'newcastle', 'Newcastle United|Newcastle', 'NEW' ],
23
- [ 'swansea', 'Swansea City|Swansea', 'SWA' ],
24
- [ 'stoke', 'Stoke City|Stoke', 'STK' ],
25
- [ 'sunderland', 'Sunderland|Sunderland AFC|AFC Sunderland', 'SUN' ],
26
- [ 'liverpool', 'Liverpool|Liverpool FC|FC Liverpool', 'LIV' ],
27
- [ 'wigan', 'Wigan Athletic|Wigan', 'WIG' ],
28
- [ 'astonvilla', 'Aston Villa', 'AVL' ],
29
- [ 'southampton', 'Southampton|Southampton FC|FC Southampton', 'SOU' ],
30
- [ 'reading', 'Reading|Reading FC|FC Reading', 'RDG' ],
31
- [ 'norwich', 'Norwich City|Norwich', 'NOR' ],
32
- [ 'qpr', 'Queens Park Rangers', 'QPR' ]]
13
+ [ 'chelsea', 'Chelsea|Chelsea FC|FC Chelsea|FC Chelsea ENG', 'CHE', 'city:london' ],
14
+ [ 'manunited', 'Manchester United|Man Utd|Manchester U. ENG', 'MUN', 'city:manchester' ],
15
+ [ 'mancity', 'Manchester City|Man City|Man. City ENG', 'MCI', 'city:manchester' ],
16
+ [ 'arsenal', 'Arsenal|Arsenal FC|FC Arsenal|FC Arsenal ENG', 'ARS', 'city:london' ],
17
+ [ 'everton', 'Everton|Everton FC|FC Everton', 'EVE', 'city:liverpool' ],
18
+ [ 'tottenham', 'Tottenham Hotspur|Tottenham', 'TOT', 'city:london' ],
19
+ [ 'westbrom', 'West Bromwich Albion|West Brom', 'WBA', 'city:westbrom' ],
20
+ [ 'westham', 'West Ham United|West Ham', 'WHU', 'city:london' ],
21
+ [ 'fulham', 'Fulham|Fulham FC|FC Fulham', 'FUL', 'city:london' ],
22
+ [ 'newcastle', 'Newcastle United|Newcastle', 'NEW', 'city:newcastle' ],
23
+ [ 'swansea', 'Swansea City|Swansea', 'SWA', 'city:swansea' ],
24
+ [ 'stoke', 'Stoke City|Stoke', 'STK', 'city:stoke' ],
25
+ [ 'sunderland', 'Sunderland|Sunderland AFC|AFC Sunderland', 'SUN', 'city:sunderland' ],
26
+ [ 'liverpool', 'Liverpool|Liverpool FC|FC Liverpool', 'LIV', 'city:liverpool' ],
27
+ [ 'wigan', 'Wigan Athletic|Wigan', 'WIG', 'city:wigan' ],
28
+ [ 'astonvilla', 'Aston Villa', 'AVL', 'city:birmingham' ],
29
+ [ 'southampton', 'Southampton|Southampton FC|FC Southampton', 'SOU', 'city:southampton' ],
30
+ [ 'reading', 'Reading|Reading FC|FC Reading', 'RDG', 'city:reading' ],
31
+ [ 'norwich', 'Norwich City|Norwich', 'NOR', 'city:norwich' ],
32
+ [ 'qpr', 'Queens Park Rangers', 'QPR', 'city:london' ]]
33
33
 
34
34
 
35
35
  en = Country.find_by_key!( 'en' )
@@ -1,24 +1,24 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  teams = [
4
- [ 'america', 'Club América', 'México' ],
5
- [ 'atlante', 'Atlante', 'Cancún' ],
6
- [ 'atlas', 'Atlas', 'Guadalajara' ],
7
- [ 'chivas', 'Guadalajara Chivas', 'Guadalajara' ],
8
- [ 'cruzazul', 'Cruz Azul', 'México' ],
9
- [ 'jaguares', 'Jaguares de Chiapas', 'Tuxtla Gutiérrez' ],
10
- [ 'leon', 'Club León', 'León' ],
11
- [ 'monarcas', 'Monarcas Morelia', 'Morelia' ],
12
- [ 'monterrey', 'Monterrey', 'Monterrey' ],
13
- [ 'pachuca', 'Pachuca', 'Pachuca' ],
14
- [ 'puebla', 'Puebla F.C. ', 'Puebla' ],
15
- [ 'queretaro', 'Querétaro F.C.', 'Querétaro' ],
16
- [ 'sanluis', 'Club San Luis', 'San Luis Potosì' ],
17
- [ 'slaguna', 'Santos Laguna', 'Torreón' ],
18
- [ 'tijuana', 'Club Tijuana', 'Tijuana' ],
19
- [ 'toluca', 'Toluca', 'Toluca' ],
20
- [ 'tigres', 'Tigres UANL', 'San Nicolás de los Garza' ],
21
- [ 'pumas', 'Pumas UNAM', 'México' ]
4
+ [ 'america', 'Club América', 'city:mexico' ],
5
+ [ 'atlante', 'Atlante', 'city:cancun' ],
6
+ [ 'atlas', 'Atlas', 'city:guadalajara' ],
7
+ [ 'chivas', 'Guadalajara Chivas', 'city:guadalajara' ],
8
+ [ 'cruzazul', 'Cruz Azul', 'city:mexico' ],
9
+ [ 'jaguares', 'Jaguares de Chiapas', 'city:tuxtla' ],
10
+ [ 'leon', 'Club León', 'city:leon' ],
11
+ [ 'monarcas', 'Monarcas Morelia', 'city:morelia' ],
12
+ [ 'monterrey', 'Monterrey', 'city:monterrey' ],
13
+ [ 'pachuca', 'Pachuca', 'city:pachuca' ],
14
+ [ 'puebla', 'Puebla F.C. ', 'city:puebla' ],
15
+ [ 'queretaro', 'Querétaro F.C.', 'city:queretaro' ],
16
+ [ 'sanluis', 'Club San Luis', 'city:sanluispotosi' ],
17
+ [ 'slaguna', 'Santos Laguna', 'city:torreon' ],
18
+ [ 'tijuana', 'Club Tijuana', 'city:tijuana' ],
19
+ [ 'toluca', 'Toluca', 'city:toluca' ],
20
+ [ 'tigres', 'Tigres UANL', 'city:sannicolas' ],
21
+ [ 'pumas', 'Pumas UNAM', 'city:mexico' ]
22
22
  ]
23
23
 
24
24
  mx = Country.find_by_key!( 'mx' )
@@ -25,6 +25,7 @@ module SportDB # forward reference; more to come later
25
25
  end
26
26
 
27
27
  require 'sportdb/models/badge'
28
+ require 'sportdb/models/city'
28
29
  require 'sportdb/models/country'
29
30
  require 'sportdb/models/event'
30
31
  require 'sportdb/models/event_team'
@@ -99,7 +100,11 @@ module SportDB
99
100
  GroupTeam.delete_all
100
101
  Round.delete_all
101
102
  Prop.delete_all
102
- Country.delete_all
103
+ Country.delete_all
104
+ City.delete_all
105
+ Badge.delete_all
106
+ League.delete_all
107
+ Season.delete_all
103
108
  end
104
109
 
105
110
  end
@@ -121,7 +121,7 @@ EOS
121
121
  puts "Stats:"
122
122
  puts " #{Event.count} events / #{Round.count} rounds / #{Group.count} groups"
123
123
  puts " #{League.count} leagues / #{Season.count} seasons"
124
- puts " #{Country.count} countries"
124
+ puts " #{Country.count} countries / #{City.count} cities"
125
125
  puts " #{Team.count} teams"
126
126
  puts " #{Game.count} games"
127
127
  puts " #{Badge.count} badges"
@@ -0,0 +1,44 @@
1
+ module SportDB::Models
2
+
3
+ class City < ActiveRecord::Base
4
+ self.table_name = 'cities'
5
+
6
+ belongs_to :country, :class_name => 'Country', :foreign_key => 'country_id'
7
+
8
+ def self.create_from_ary!( cities, more_values={} )
9
+ cities.each do |values|
10
+
11
+ ## todo/fix: split optional synonyms from title (see team for example)
12
+
13
+ ## key & title & country required
14
+ attr = {
15
+ key: values[0]
16
+ }
17
+
18
+ ## title (split of optional synonyms)
19
+ # e.g. FC Bayern Muenchen|Bayern Muenchen|Bayern
20
+ titles = values[1].split('|')
21
+
22
+ attr[ :title ] = titles[0]
23
+ ## add optional synonyms
24
+ attr[ :synonyms ] = titles[1..-1].join('|') if titles.size > 1
25
+
26
+ attr = attr.merge( more_values )
27
+
28
+ ## check for optional values
29
+ values[2..-1].each do |value|
30
+ if value.is_a? Country
31
+ attr[ :country_id ] = value.id
32
+ else
33
+ # issue warning: unknown type for value
34
+ end
35
+ end
36
+
37
+ City.create!( attr )
38
+ end # each city
39
+ end
40
+
41
+ end # class Cities
42
+
43
+
44
+ end # module Models::SportDB
@@ -3,6 +3,8 @@ module SportDB::Models
3
3
 
4
4
  class Country < ActiveRecord::Base
5
5
  self.table_name = 'countries'
6
+
7
+ has_many :cities, :class_name => 'City', :foreign_key => 'city_id'
6
8
 
7
9
  def self.create_from_ary!( countries )
8
10
  countries.each do |values|
@@ -9,6 +9,7 @@ class Team < ActiveRecord::Base
9
9
  has_many :badges # Winner, 2nd, Cupsieger, Aufsteiger, Absteiger, etc.
10
10
 
11
11
  belongs_to :country, :class_name => 'Country', :foreign_key => 'country_id'
12
+ belongs_to :city, :class_name => 'City', :foreign_key => 'city_id'
12
13
 
13
14
 
14
15
  def self.create_from_ary!( teams, more_values={} )
@@ -16,7 +17,7 @@ class Team < ActiveRecord::Base
16
17
 
17
18
  ## key & title required
18
19
  attr = {
19
- :key => values[0]
20
+ key: values[0]
20
21
  }
21
22
 
22
23
  ## title (split of optional synonyms)
@@ -34,8 +35,14 @@ class Team < ActiveRecord::Base
34
35
  values[2..-1].each do |value|
35
36
  if value.is_a? Country
36
37
  attr[ :country_id ] = value.id
37
- elsif value.length == 3 ## assume its a tag (three latters)
38
+ elsif value.is_a? City
39
+ attr[ :city_id ] = value.id
40
+ elsif value.length == 3 ## assume its a tag (three letters e.g. ITA)
38
41
  attr[ :tag ] = value
42
+ elsif value =~ /^city:/ ## city:
43
+ value_city_key = value[5..-1] ## cut off city: prefix
44
+ value_city = City.find_by_key!( value_city_key )
45
+ attr[ :city_id ] = value_city.id
39
46
  else
40
47
  attr[ :title2 ] = value
41
48
  end
@@ -15,11 +15,19 @@ def self.up
15
15
 
16
16
  create_table :countries do |t|
17
17
  t.string :title, :null => false
18
- t.string :tag, :null => false # short three letter tag
18
+ t.string :tag, :null => false # short three letter tag (FIFA country code)
19
19
  t.string :key, :null => false
20
20
  t.timestamps
21
21
  end
22
22
 
23
+ create_table :cities do |t|
24
+ t.string :title, :null => false
25
+ t.string :key, :null => false
26
+ t.string :synonyms # comma separated list of synonyms
27
+ t.references :country, :null => false
28
+ t.timestamps
29
+ end
30
+
23
31
  create_table :props do |t|
24
32
  t.string :key, :null => false
25
33
  t.string :value, :null => false
@@ -33,6 +41,7 @@ create_table :teams do |t|
33
41
  t.string :tag # make it not null? - three letter tag (short title)
34
42
  t.string :synonyms # comma separated list of synonyms
35
43
  t.references :country, :null => false
44
+ t.references :city # NB: city is optional (should be required for clubs e.g. non-national teams)
36
45
  t.boolean :club, :null => false, :default => false # is it a club (not a national team)?
37
46
  t.boolean :national, :null => false, :default => false # is it a national selection team (not a club)?
38
47
  t.timestamps
@@ -1,4 +1,4 @@
1
1
 
2
2
  module SportDB
3
- VERSION = '0.5.0'
3
+ VERSION = '0.5.1'
4
4
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 0
10
- version: 0.5.0
9
+ - 1
10
+ version: 0.5.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gerald Bauer
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-11-01 00:00:00 Z
18
+ date: 2012-11-03 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: activerecord
@@ -98,6 +98,7 @@ files:
98
98
  - db/at/2012_13/cup_fixtures.rb
99
99
  - db/at/badges.rb
100
100
  - db/at/teams.rb
101
+ - db/cities.rb
101
102
  - db/cl/2011_12/cl.rb
102
103
  - db/cl/2011_12/el.rb
103
104
  - db/cl/2012_13/cl.rb
@@ -139,6 +140,7 @@ files:
139
140
  - lib/sportdb/cli/runner.rb
140
141
  - lib/sportdb/loader.rb
141
142
  - lib/sportdb/models/badge.rb
143
+ - lib/sportdb/models/city.rb
142
144
  - lib/sportdb/models/country.rb
143
145
  - lib/sportdb/models/event.rb
144
146
  - lib/sportdb/models/event_team.rb