sportdb-config 0.3.3 → 0.3.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2a4445ef87f3b56b3ef17a685cdd0e1b2b576220
4
- data.tar.gz: 508640a8a0a0e2519892d15d1ba7065e71738eea
3
+ metadata.gz: 8e732ec27a048790023945b81ee4bfb641b511df
4
+ data.tar.gz: c54dc64a1b019accb8337e1ef80d252338c8416c
5
5
  SHA512:
6
- metadata.gz: 44cc3d79fcb8a16c34fe27c8ecdfb158a99ef308bd9a17901fd85c0849f1bddef3882c3878161738d1cb23f2a068d8e706bce5f28fb5b21bc2df94b427316447
7
- data.tar.gz: d0e784ae220704714ebbd3187246bbd44b87c6dd55a01a6d79812d959fa2ad2772b788e4c5f910581fb3db7dfb82a72339d1cd0b18593579c932b46b71701f08
6
+ metadata.gz: d73d9aafbd977d57be80e230de8c9bb8d0090fe816ee235df9854e8d4f6877e1df863b74e1a22ff80ed360534141c46e7e1b23f1c219ebd418d3cf7d9c87d7f9
7
+ data.tar.gz: 730cf120ff994ac024b462e164faf2aba875e3f3e29ee72d73e4594706cbe088253050f85b9557e78881061c923cea30b12ee278a9de5b38b2fbffe0152eb830
@@ -17,6 +17,7 @@ lib/sportdb/config/season_utils.rb
17
17
  lib/sportdb/config/team_reader.rb
18
18
  lib/sportdb/config/version.rb
19
19
  test/helper.rb
20
+ test/test_clubs.rb
20
21
  test/test_config.rb
21
22
  test/test_countries.rb
22
23
  test/test_league_reader.rb
@@ -6,16 +6,13 @@ module SportDb
6
6
 
7
7
  class Configuration
8
8
 
9
- def initialize
10
- @errors = [] ## make parsing errors "global" for now
11
- end
12
9
 
13
- def team_mappings
10
+ def team_mappings ## todo/fix: rename to clubs_mappings - why? why not?
14
11
  read_teams() if @team_mappings.nil?
15
12
  @team_mappings
16
13
  end
17
14
 
18
- def teams
15
+ def teams ## todo/fix: rename to clubs - why? why not?
19
16
  read_teams() if @teams.nil?
20
17
  @teams
21
18
  end
@@ -29,12 +26,9 @@ class Configuration
29
26
  ####
30
27
  # todo/fix: find a better way to configure club / team datasets
31
28
  attr_accessor :clubs_dir
32
- attr_accessor :errors
33
-
34
29
  def clubs_dir() @clubs_dir ||= './clubs'; end
35
30
 
36
31
 
37
-
38
32
  CLUBS_REGEX1 = %r{ (?:^|/) # beginning (^) or beginning of path (/)
39
33
  (?<country>[a-z]{1,3})\.clubs\.txt$
40
34
  }x
@@ -116,13 +110,53 @@ class Configuration
116
110
  =end
117
111
 
118
112
 
119
- def read_teams
113
+
114
+ class ClubsHash ## todo/check: use (rename to) ClubsMapping(s) - why? why not?
115
+ def initialize
116
+ @h = {}
117
+ @errors = []
118
+ end
119
+
120
+ attr_reader :errors
121
+ def errors?() @errors.empty? == false; end
122
+
123
+ def add( rec ) ## add club record / alt_names
124
+ rec.alt_names.each do |alt_name|
125
+ alt_recs = @h[ alt_name ]
126
+ if alt_recs
127
+ msg = "** !!! WARN !!! - alt name conflict/duplicate - >#{alt_name}< will overwrite >#{alt_recs[0].name}, #{alt_recs[0].country.name}< with >#{rec.name}, #{rec.country.name}<"
128
+ puts msg
129
+ @errors << msg
130
+ alt_recs << rec
131
+ else
132
+ @h[ alt_name ] = [rec]
133
+ end
134
+ end
135
+ end
136
+
137
+ def fetch( alt_name ) @h[alt_name]; end
138
+ def []( alt_name ) ## quick fix: for now returns first name; use fetch for recs array for now!!!
139
+ ## keep "compatible" with old code for now
140
+ alt_recs = @h[ alt_name ]
141
+ if alt_recs
142
+ alt_recs[0].name ## use canonical name of first match for now
143
+ else
144
+ nil # nothing found
145
+ end
146
+ end
147
+ end # class ClubHash
148
+
149
+
150
+ def read_teams ## todo/fix: rename to read_clubs - why? why not?
120
151
  ## unify team names; team (builtin/known/shared) name mappings
121
152
  ## cleanup team names - use local ("native") name with umlaut etc.
122
153
  recs = []
123
- @errors = [] ## reset errors
124
154
 
125
155
  ## todo/fix: pass along / use country code too
156
+ ## note: country code no longer needed in path (is now expected as heading inside the file)
157
+
158
+ ## todo/fix: add to teamreader
159
+ ## check that name and alt_names for a club are all unique (not duplicates)
126
160
  datafiles = find_clubs_datafiles( clubs_dir )
127
161
  datafiles.each do |datafile|
128
162
  country = datafile[0] ## country code e.g. eng, at, de, etc.
@@ -133,40 +167,45 @@ class Configuration
133
167
  ############################
134
168
  ## add team mappings
135
169
  ## alt names to canonical pretty (recommended unique) name
136
- @team_mappings = {}
137
-
138
- recs.each do |rec|
139
- rec.alt_names.each do |alt_name|
140
- name = @team_mappings[ alt_name ]
141
- if name ## todo/fix: add better warn about duplicates (if key exits) ???????
142
- msg = "** !!! WARN !!! - alt name conflict/duplicate - >#{alt_name}< will overwrite >#{name}< with >#{rec.name}<"
143
- puts msg
144
- @errors << msg
145
- else
146
- @team_mappings[ alt_name ] = rec.name
147
- end
148
- end
149
- end
170
+ @team_mappings = ClubsHash.new
171
+ recs.each { |rec| @team_mappings.add( rec ) }
150
172
 
151
173
  ###
152
174
  ## reverse hash for lookup/list of "official / registered(?)"
153
175
  ## pretty recommended canonical unique (long form)
154
176
  ## team names
155
177
 
156
-
157
- ##
158
- ## todo/fix: move to new TeamConfig class (for reuse) !!!!!!
159
- ## todo/fix: add check for duplicates/conflicts too!!!
160
178
  @teams = {}
161
179
  recs.each do |rec|
162
- @teams[ rec.name ] = rec
180
+ old_rec = @teams[ rec.name ]
181
+ if old_rec
182
+ puts "** !!! ERROR !!! - (canonical) name conflict - duplicate - >#{rec.name}< will overwrite >#{old_rec.name}<:"
183
+ pp old_rec
184
+ pp rec
185
+ exit 1
186
+ else
187
+ @teams[ rec.name ] = rec
188
+
189
+ ## note: check if there's an alternative name registered
190
+ ## for the canonical name
191
+ ## todo/fix: find a better scheme for (alt) name mapping - why? why not?
192
+ ## allow alt names same as canonical names if not is the same club/record - why? why not?
193
+ alt_recs = @team_mappings.fetch( rec.name )
194
+ if alt_recs
195
+ puts "** !!! ERROR !!! - (canonical) name conflict - >#{rec.name}< registered already as alternative name mapping:"
196
+ pp alt_recs
197
+
198
+ ## note: exit now only if it's the same club (that has alt name that is the canonical name)
199
+ exit 1 if alt_recs.include?(rec)
200
+ end
201
+ end
163
202
  end
164
203
 
165
- if @errors.size > 0
204
+ if @team_mappings.errors?
166
205
  puts ""
167
206
  puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
168
- puts " #{@errors.size} errors:"
169
- pp @errors
207
+ puts " #{@team_mappings.errors.size} errors:"
208
+ pp @team_mappings.errors
170
209
  ## exit 1
171
210
  end
172
211
 
@@ -174,6 +213,7 @@ class Configuration
174
213
  end
175
214
 
176
215
 
216
+
177
217
  def read_leagues
178
218
  #####
179
219
  # add / read-in leagues config
@@ -8,24 +8,34 @@ class Configuration
8
8
  ## built-in countries for (quick starter) auto-add
9
9
  COUNTRIES = { ## rename to AUTO or BUILTIN_COUNTRIES or QUICK_COUNTRIES - why? why not?
10
10
  ## british isles
11
- eng: ['England', 'ENG'], ## title/name, code
12
- sco: ['Scotland', 'SCO'],
13
- ie: ['Ireland', 'IRL'],
11
+ eng: ['England', 'ENG'], ## title/name, code
12
+ sco: ['Scotland', 'SCO'],
13
+ ie: ['Ireland', 'IRL'],
14
+ wal: ['Wales', 'WAL'],
15
+ nir: ['Northern Ireland', 'NIR'],
14
16
 
15
17
  ## central europe
16
18
  at: ['Austria', 'AUT'],
17
19
  de: ['Germany', 'GER'], ## use fifa code or iso? - using fifa for now
18
- ch: ['Switzerland', 'SWZ'],
20
+ ch: ['Switzerland', 'SUI'],
21
+ li: ['Liechtenstein', 'LIE'],
19
22
  pl: ['Poland', 'POL'],
23
+ cz: ['Czech Republic', 'CZE'],
24
+ sk: ['Slovakia', 'SVK'],
25
+ hu: ['Hungary', 'HUN'],
26
+ si: ['Slovenia', 'SVN'],
20
27
 
21
28
  ## western europe
29
+ be: ['Belgium', 'BEL'],
30
+ nl: ['Netherlands', 'NED'],
31
+ lu: ['Luxembourg', 'LUX'],
22
32
  fr: ['France', 'FRA'],
33
+ mc: ['Monaco', 'MCO'],
23
34
  es: ['Spain', 'ESP'],
24
- be: ['Belgium', '' ],
25
- nl: ['Netherlands', '' ],
35
+ ad: ['Andorra', 'AND'],
26
36
 
27
37
  ## northern europe / skandinavia
28
- dk: ['Denmark', 'DNK'],
38
+ dk: ['Denmark', 'DEN'],
29
39
  fi: ['Finland', 'FIN'],
30
40
  no: ['Norway', 'NOR'],
31
41
  se: ['Sweden', 'SWE'],
@@ -33,141 +43,86 @@ class Configuration
33
43
  ## eastern europe
34
44
  ro: ['Romania', 'ROU'],
35
45
  ru: ['Russia', 'RUS'],
46
+ al: ['Albania', 'ALB'],
47
+ am: ['Armenia', 'ARM'],
48
+ az: ['Azerbaijan', 'AZE'],
49
+ ba: ['Bosnia and Herzegovina', 'BIH'],
50
+ bg: ['Bulgaria', 'BUL'],
51
+ by: ['Belarus', 'BLR'],
52
+
53
+ ## more european
54
+ cy: ['Cyprus', 'CYP'],
55
+ is: ['Iceland', 'ISL'],
56
+ fo: ['Faroe Islands', 'FRO'],
57
+ ge: ['Georgia', 'GEO'],
58
+ gi: ['Gibraltar', 'GIB'],
59
+ gr: ['Greece', 'GRE'],
60
+ hr: ['Croatia', 'CRO'],
61
+ it: ['Italy', 'ITA'],
62
+ sm: ['San Marino', 'SMR'],
63
+ ee: ['Estonia', 'EST'],
64
+ lt: ['Lithuania', 'LTU'],
65
+ lv: ['Latvija', 'LVA'],
66
+ md: ['Moldova', 'MDA'],
67
+ me: ['Montenegro', 'MNE'],
68
+ mk: ['Macedonia', 'MKD'],
69
+ mt: ['Malta', 'MLT'],
70
+ pt: ['Portugal', 'POR'],
71
+ rs: ['Serbia', 'SRB'],
72
+ tr: ['Turkey', 'TUR'],
73
+ ua: ['Ukraine', 'UKR'],
74
+
36
75
 
37
76
  ## north america
38
77
  us: ['United States', 'USA'],
39
78
  mx: ['Mexico', 'MEX'],
79
+ ca: ['Canada', 'CAN'],
40
80
 
41
81
  ## caribbean
42
- ht: ['Haiti', ''],
43
- pr: ['Puerto Rico', ''],
44
- tt: ['Trinidad and Tobago', ''],
82
+ ht: ['Haiti', 'HAI'],
83
+ pr: ['Puerto Rico', 'PUR'],
84
+ tt: ['Trinidad and Tobago', 'TRI'],
45
85
 
46
86
  ## central america
47
- cr: ['Costa Rica', ''],
48
- gt: ['Guatemala', ''],
49
- hn: ['Honduras', ''],
50
- ni: ['Nicaragua', ''],
51
- pa: ['Panama', ''],
52
- sv: ['El Salvador', ''],
87
+ cr: ['Costa Rica', 'CRC'],
88
+ gt: ['Guatemala', 'GUA'],
89
+ hn: ['Honduras', 'HON'],
90
+ ni: ['Nicaragua', 'NCA'],
91
+ pa: ['Panama', 'PAN'],
92
+ sv: ['El Salvador', 'SLV'],
93
+
53
94
 
54
95
  ## south america
55
96
  ar: ['Argentina', 'ARG'],
56
97
  br: ['Brazil', 'BRA'],
57
- bo: ['Bolivia', ''],
58
- cl: ['Chile', ''],
59
- co: ['Colombia', ''],
60
- ec: ['Ecuador', ''],
61
- gy: ['Guyana', ''],
62
- pe: ['Peru', ''],
63
- py: ['Paraguay', ''],
64
- uy: ['Uruguay', ''],
65
- ve: ['Venezuela', ''],
98
+ bo: ['Bolivia', 'BOL'],
99
+ cl: ['Chile', 'CHI'],
100
+ co: ['Colombia', 'COL'],
101
+ ec: ['Ecuador', 'ECU'],
102
+ gy: ['Guyana', 'GUY'],
103
+ pe: ['Peru', 'PER'],
104
+ py: ['Paraguay', 'PAR'],
105
+ uy: ['Uruguay', 'URU'],
106
+ ve: ['Venezuela', 'VEN'],
107
+
108
+ ## middle east
109
+ il: ['Israel', 'ISR'],
66
110
 
67
111
  ## asia
68
112
  cn: ['China', 'CHN'],
69
113
  jp: ['Japan', 'JPN'],
70
- kz: ['Kazakhstan', '' ],
71
- kr: ['South Korea', '' ],
114
+ kz: ['Kazakhstan', 'KAZ'],
115
+ kr: ['South Korea', 'KOR'],
72
116
 
73
117
  ## africa
74
- eg: ['Egypt', ''],
75
- ma: ['Morocco', ''],
118
+ eg: ['Egypt', 'EGY'],
119
+ ma: ['Morocco', 'MAR'],
120
+
121
+ ## pacific
122
+ au: ['Australia', 'AUS'],
123
+ nz: ['New Zealand', 'NZL'],
76
124
  }
77
125
 
78
- ## add more countries - see/check datasets !!
79
- =begin
80
- [["eg", "../../../openfootball/clubs/africa/egypt/eg.clubs.txt"],
81
- ["ma", "../../../openfootball/clubs/africa/morocco/ma.clubs.txt"],
82
- ["cn", "../../../openfootball/clubs/asia/china/cn.clubs.txt"],
83
- ["jp", "../../../openfootball/clubs/asia/japan/jp.clubs.txt"],
84
- ["kz", "../../../openfootball/clubs/asia/kazakhstan/kz.clubs.txt"],
85
- ["kr", "../../../openfootball/clubs/asia/south-korea/kr.clubs.txt"],
86
- ["ht", "../../../openfootball/clubs/caribbean/haiti/ht.clubs.txt"],
87
- ["pr", "../../../openfootball/clubs/caribbean/puerto-rico/pr.clubs.txt"],
88
- ["tt",
89
- "../../../openfootball/clubs/caribbean/trinidad-n-tobago/tt.clubs.txt"],
90
- ["cr", "../../../openfootball/clubs/central-america/costa-rica/cr.clubs.txt"],
91
- ["gt", "../../../openfootball/clubs/central-america/guatemala/gt.clubs.txt"],
92
- ["hn", "../../../openfootball/clubs/central-america/hn-honduras/clubs.txt"],
93
- ["ni", "../../../openfootball/clubs/central-america/ni-nicaragua/clubs.txt"],
94
- ["pa", "../../../openfootball/clubs/central-america/pa-panama/clubs.txt"],
95
- ["sv",
96
- "../../../openfootball/clubs/central-america/sv-el-salvador/clubs.txt"],
97
- ["ad", "../../../openfootball/clubs/europe/ad-andorra/clubs.txt"],
98
- ["al", "../../../openfootball/clubs/europe/al-albania/clubs.txt"],
99
- ["am", "../../../openfootball/clubs/europe/am-armenia/clubs.txt"],
100
- ["at", "../../../openfootball/clubs/europe/at-austria/clubs.txt"],
101
- ["az", "../../../openfootball/clubs/europe/az-azerbaijan/clubs.txt"],
102
- ["ba",
103
- "../../../openfootball/clubs/europe/ba-bosnia-n-herzegovina/clubs.txt"],
104
- ["be", "../../../openfootball/clubs/europe/be-belgium/clubs.txt"],
105
- ["bg", "../../../openfootball/clubs/europe/bg-bulgaria/clubs.txt"],
106
- ["by", "../../../openfootball/clubs/europe/by-belarus/clubs.txt"],
107
- ["ch",
108
- "../../../openfootball/clubs/europe/ch-confoederatio-helvetica/clubs.txt"],
109
- ["cy", "../../../openfootball/clubs/europe/cy-cyprus/clubs.txt"],
110
- ["cz", "../../../openfootball/clubs/europe/cz-czech-republic/clubs.txt"],
111
- ["de", "../../../openfootball/clubs/europe/de-deutschland/clubs.txt"],
112
- ["dk", "../../../openfootball/clubs/europe/dk-denmark/clubs.txt"],
113
- ["ee", "../../../openfootball/clubs/europe/ee-estonia/clubs.txt"],
114
- ["eng", "../../../openfootball/clubs/europe/eng-england/clubs.txt"],
115
- ["es", "../../../openfootball/clubs/europe/es-espana/clubs.txt"],
116
- ["fi", "../../../openfootball/clubs/europe/fi-finland/clubs.txt"],
117
- ["fo", "../../../openfootball/clubs/europe/fo-faroe-islands/clubs.txt"],
118
- ["fr", "../../../openfootball/clubs/europe/fr-france/clubs.txt"],
119
- ["ge", "../../../openfootball/clubs/europe/ge-georgia/clubs.txt"],
120
- ["gi", "../../../openfootball/clubs/europe/gi-gibraltar/clubs.txt"],
121
- ["gr", "../../../openfootball/clubs/europe/gr-greece/clubs.txt"],
122
- ["hr", "../../../openfootball/clubs/europe/hr-croatia/clubs.txt"],
123
- ["hu", "../../../openfootball/clubs/europe/hu-hungary/clubs.txt"],
124
- ["ie", "../../../openfootball/clubs/europe/ie-ireland/clubs.txt"],
125
- ["is", "../../../openfootball/clubs/europe/is-iceland/clubs.txt"],
126
- ["it", "../../../openfootball/clubs/europe/it-italy/clubs.txt"],
127
- ["li", "../../../openfootball/clubs/europe/li-liechtenstein/clubs.txt"],
128
- ["lt", "../../../openfootball/clubs/europe/lt-lithuania/clubs.txt"],
129
- ["lu", "../../../openfootball/clubs/europe/lu-luxembourg/clubs.txt"],
130
- ["lv", "../../../openfootball/clubs/europe/lv-latvija/clubs.txt"],
131
- ["mc", "../../../openfootball/clubs/europe/mc-monaco/clubs.txt"],
132
- ["md", "../../../openfootball/clubs/europe/md-moldova/clubs.txt"],
133
- ["me", "../../../openfootball/clubs/europe/me-montenegro/clubs.txt"],
134
- ["mk", "../../../openfootball/clubs/europe/mk-macedonia/clubs.txt"],
135
- ["mt", "../../../openfootball/clubs/europe/mt-malta/clubs.txt"],
136
- ["nir", "../../../openfootball/clubs/europe/nir-northern-ireland/clubs.txt"],
137
- ["nl", "../../../openfootball/clubs/europe/nl-netherlands/clubs.txt"],
138
- ["no", "../../../openfootball/clubs/europe/no-norway/clubs.txt"],
139
- ["pl", "../../../openfootball/clubs/europe/pl-poland/clubs.txt"],
140
- ["pt", "../../../openfootball/clubs/europe/pt-portugal/clubs.txt"],
141
- ["ro", "../../../openfootball/clubs/europe/ro-romania/clubs.txt"],
142
- ["rs", "../../../openfootball/clubs/europe/rs-serbia/clubs.txt"],
143
- ["ru", "../../../openfootball/clubs/europe/ru-russia/clubs.txt"],
144
- ["sco", "../../../openfootball/clubs/europe/sco-scotland/clubs.txt"],
145
- ["se", "../../../openfootball/clubs/europe/se-sweden/clubs.txt"],
146
- ["si", "../../../openfootball/clubs/europe/si-slovenia/clubs.txt"],
147
- ["sk", "../../../openfootball/clubs/europe/sk-slovakia/clubs.txt"],
148
- ["sm", "../../../openfootball/clubs/europe/sm-san-marino/clubs.txt"],
149
- ["tr", "../../../openfootball/clubs/europe/tr-turkey/clubs.txt"],
150
- ["ua", "../../../openfootball/clubs/europe/ua-ukraine/clubs.txt"],
151
- ["wal", "../../../openfootball/clubs/europe/wal-wales/clubs.txt"],
152
- ["il", "../../../openfootball/clubs/middle-east/il-israel/clubs.txt"],
153
- ["ca", "../../../openfootball/clubs/north-america/ca-canada/clubs.txt"],
154
- ["mx", "../../../openfootball/clubs/north-america/mx-mexico/clubs.txt"],
155
- ["us",
156
- "../../../openfootball/clubs/north-america/us-united-states/clubs.txt"],
157
- ["au", "../../../openfootball/clubs/pacific/australia/au.clubs.txt"],
158
- ["nz", "../../../openfootball/clubs/pacific/new-zealand/nz.clubs.txt"],
159
- ["ar", "../../../openfootball/clubs/south-america/argentina/ar.clubs.txt"],
160
- ["bo", "../../../openfootball/clubs/south-america/bolivia/bo.clubs.txt"],
161
- ["br", "../../../openfootball/clubs/south-america/brazil/br.clubs.txt"],
162
- ["cl", "../../../openfootball/clubs/south-america/chile/cl.clubs.txt"],
163
- ["co", "../../../openfootball/clubs/south-america/co-colombia/clubs.txt"],
164
- ["ec", "../../../openfootball/clubs/south-america/ec-ecuador/clubs.txt"],
165
- ["gy", "../../../openfootball/clubs/south-america/gy-guyana/clubs.txt"],
166
- ["pe", "../../../openfootball/clubs/south-america/pe-peru/clubs.txt"],
167
- ["py", "../../../openfootball/clubs/south-america/py-paraguay/clubs.txt"],
168
- ["uy", "../../../openfootball/clubs/south-america/uy-uruguay/clubs.txt"],
169
- ["ve", "../../../openfootball/clubs/south-america/ve-venezuela/clubs.txt"]]
170
- =end
171
126
 
172
127
  ##
173
128
  # note: use our own (internal) country struct for now - why? why not?
@@ -198,3 +153,4 @@ class Configuration
198
153
  end # class Configuration
199
154
  end # module Import
200
155
  end # module SportDb
156
+
@@ -235,7 +235,8 @@ def self.parse( txt )
235
235
  rec.country = country
236
236
  else
237
237
  ## make it an error - why? why not?
238
- puts "!!! warn - country missing in headings hierarchy"
238
+ puts "!!! error - country missing in headings hierarchy - sorry - add to quicklist"
239
+ exit 1
239
240
  end
240
241
 
241
242
  ## 2) check geo tree with headings hierarchy
@@ -8,7 +8,7 @@ module Boot ## note: use a different module than Config to avoid confusion
8
8
 
9
9
  MAJOR = 0 ## todo: namespace inside version or something - why? why not??
10
10
  MINOR = 3
11
- PATCH = 3
11
+ PATCH = 4
12
12
  VERSION = [MAJOR,MINOR,PATCH].join('.')
13
13
 
14
14
  def self.version
@@ -0,0 +1,36 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # to run use
5
+ # ruby -I ./lib -I ./test test/test_clubs.rb
6
+
7
+
8
+ require 'helper'
9
+
10
+ class TestClubs < MiniTest::Test
11
+
12
+
13
+ def match1( txt ) SportDb::Import::Configuration::CLUBS_REGEX1.match( txt ); end
14
+ def match2( txt ) SportDb::Import::Configuration::CLUBS_REGEX2.match( txt ); end
15
+
16
+ def test_find_clubs
17
+ m = match1( 'de.clubs.txt' )
18
+ assert_equal 'de', m[:country]
19
+
20
+ m = match1( 'deutschland/de.clubs.txt' )
21
+ assert_equal 'de', m[:country]
22
+
23
+ m = match2( 'europe/de-deutschland/clubs.txt' )
24
+ assert_equal 'de', m[:country]
25
+
26
+ m = match2( 'de-deutschland/clubs.txt' )
27
+ assert_equal 'de', m[:country]
28
+
29
+
30
+ assert match1( 'clubs.txt' ) == nil
31
+ assert match2( 'clubs.txt' ) == nil
32
+ assert match1( 'deutschland/clubs.txt' ) == nil
33
+ assert match2( 'deutschland/clubs.txt' ) == nil
34
+ end
35
+
36
+ end # class TestClubs
@@ -9,39 +9,12 @@ require 'helper'
9
9
 
10
10
  class TestConfig < MiniTest::Test
11
11
 
12
-
13
- def match1( txt ) SportDb::Import::Configuration::CLUBS_REGEX1.match( txt ); end
14
- def match2( txt ) SportDb::Import::Configuration::CLUBS_REGEX2.match( txt ); end
15
-
16
- def test_find_clubs
17
- m = match1( 'de.clubs.txt' )
18
- assert_equal 'de', m[:country]
19
-
20
- m = match1( 'deutschland/de.clubs.txt' )
21
- assert_equal 'de', m[:country]
22
-
23
- m = match2( 'europe/de-deutschland/clubs.txt' )
24
- assert_equal 'de', m[:country]
25
-
26
- m = match2( 'de-deutschland/clubs.txt' )
27
- assert_equal 'de', m[:country]
28
-
29
-
30
- assert match1( 'clubs.txt' ) == nil
31
- assert match2( 'clubs.txt' ) == nil
32
- assert match1( 'deutschland/clubs.txt' ) == nil
33
- assert match2( 'deutschland/clubs.txt' ) == nil
34
- end
35
-
36
-
37
12
  def test_clubs
38
13
  SportDb::Import.config.clubs_dir = '../../../openfootball/clubs'
39
14
 
40
- pp SportDb::Import.config.teams
41
-
42
- pp SportDb::Import.config.errors
15
+ SportDb::Import.config.teams
43
16
 
44
17
  assert true ## assume ok if we get here
45
- end # method test_teams
18
+ end # method test_clubs
46
19
 
47
20
  end # class TestConfig
@@ -105,17 +105,20 @@ TXT
105
105
  assert_equal 'London', recs[0].city
106
106
  assert_equal 'Fulham', recs[0].district
107
107
  assert_equal ['Greater London'], recs[0].geos
108
- assert_equal 'eng', recs[0].country
108
+ assert_equal 'England', recs[0].country.name
109
+ assert_equal 'eng', recs[0].country.key
109
110
 
110
111
  assert_equal 'London', recs[1].city
111
112
  assert_equal 'Charlton', recs[1].district
112
113
  assert_equal ['Greater London'], recs[1].geos
113
- assert_equal 'eng', recs[1].country
114
+ assert_equal 'England', recs[1].country.name
115
+ assert_equal 'eng', recs[1].country.key
114
116
 
115
117
  assert_equal 'Hamburg', recs[2].city
116
118
  assert_equal 'St. Pauli', recs[2].district
117
119
  assert_equal ['Hamburg'], recs[2].geos
118
- assert_equal 'de', recs[2].country
120
+ assert_equal 'Germany', recs[2].country.name
121
+ assert_equal 'de', recs[2].country.key
119
122
  end
120
123
 
121
124
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-16 00:00:00.000000000 Z
11
+ date: 2019-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -71,6 +71,7 @@ files:
71
71
  - lib/sportdb/config/team_reader.rb
72
72
  - lib/sportdb/config/version.rb
73
73
  - test/helper.rb
74
+ - test/test_clubs.rb
74
75
  - test/test_config.rb
75
76
  - test/test_countries.rb
76
77
  - test/test_league_reader.rb