sportdb-config 0.7.1 → 0.8.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.
- checksums.yaml +4 -4
- data/Manifest.txt +2 -15
- data/Rakefile +3 -2
- data/lib/sportdb/config.rb +7 -6
- data/lib/sportdb/config/config.rb +43 -15
- data/lib/sportdb/config/version.rb +5 -5
- data/test/helper.rb +2 -1
- data/test/{test_config.rb → test_find_datafiles.rb} +13 -4
- data/test/test_leagues.rb +24 -0
- metadata +20 -28
- data/config/leagues/eng.txt +0 -40
- data/config/leagues/fr.txt +0 -9
- data/config/leagues/gr.txt +0 -7
- data/config/leagues/sco.txt +0 -19
- data/config/world/ar.txt +0 -11
- data/config/world/at.txt +0 -19
- data/config/world/be.txt +0 -18
- data/config/world/de.txt +0 -19
- data/config/world/eng.txt +0 -162
- data/lib/sportdb/config/league.rb +0 -118
- data/lib/sportdb/config/league_reader.rb +0 -65
- data/lib/sportdb/config/league_utils.rb +0 -24
- data/test/test_league_reader.rb +0 -54
- data/test/test_league_utils.rb +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3730a1e31df7d9bd0ebbdd4f1127cdf180d94fb
|
4
|
+
data.tar.gz: 236e45970f9e11585cb48a68547a98e641d6ad6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aac070a5652cba90e1d0b1202241f4903e8ca76b8640037d64657ee6adcefa6a56618b97b2cf927cd8cc2eb1aa4ba734e1c8282476f29201afc261316f4bf8f5
|
7
|
+
data.tar.gz: 8735ac9a8e0cebafcc42a3d28bced5f539e1e85992382b156e6a7111adaa20088050c321b6d810b52ca8f434d810f5e31c5bb3483c26b4bba39cba6abb0d8886
|
data/Manifest.txt
CHANGED
@@ -3,28 +3,15 @@ Manifest.txt
|
|
3
3
|
NOTES.md
|
4
4
|
README.md
|
5
5
|
Rakefile
|
6
|
-
config/leagues/eng.txt
|
7
|
-
config/leagues/fr.txt
|
8
|
-
config/leagues/gr.txt
|
9
|
-
config/leagues/sco.txt
|
10
|
-
config/world/ar.txt
|
11
|
-
config/world/at.txt
|
12
|
-
config/world/be.txt
|
13
|
-
config/world/de.txt
|
14
|
-
config/world/eng.txt
|
15
6
|
lib/sportdb/config.rb
|
16
7
|
lib/sportdb/config/config.rb
|
17
|
-
lib/sportdb/config/league.rb
|
18
|
-
lib/sportdb/config/league_reader.rb
|
19
|
-
lib/sportdb/config/league_utils.rb
|
20
8
|
lib/sportdb/config/season_utils.rb
|
21
9
|
lib/sportdb/config/version.rb
|
22
10
|
lib/sportdb/config/wiki_index.rb
|
23
11
|
test/helper.rb
|
24
12
|
test/test_clubs.rb
|
25
|
-
test/test_config.rb
|
26
13
|
test/test_countries.rb
|
27
|
-
test/
|
28
|
-
test/
|
14
|
+
test/test_find_datafiles.rb
|
15
|
+
test/test_leagues.rb
|
29
16
|
test/test_season_utils.rb
|
30
17
|
test/test_wiki_index.rb
|
data/Rakefile
CHANGED
@@ -22,13 +22,14 @@ Hoe.spec 'sportdb-config' do
|
|
22
22
|
self.extra_deps = [
|
23
23
|
['sportdb-countries', '>= 0.2.0'],
|
24
24
|
['sportdb-clubs', '>= 0.2.0'],
|
25
|
+
['sportdb-leagues', '>= 0.1.0'],
|
25
26
|
## dataset libs / gems
|
26
27
|
['fifa', '>= 1.0.0'], ## for (builtin/default) countries
|
27
|
-
['footballdb-clubs', '>= 0.
|
28
|
+
['footballdb-clubs', '>= 1.0.0'], ## for (builtin/default) clubs
|
28
29
|
]
|
29
30
|
|
30
31
|
self.spec_extras = {
|
31
|
-
:
|
32
|
+
required_ruby_version: '>= 2.2.2'
|
32
33
|
}
|
33
34
|
|
34
35
|
end
|
data/lib/sportdb/config.rb
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
### our own sportdb libs / gems
|
4
4
|
require 'sportdb/countries'
|
5
5
|
require 'sportdb/clubs'
|
6
|
+
require 'sportdb/leagues'
|
7
|
+
|
6
8
|
|
7
9
|
### "built-in" default dataset libs / gems
|
8
10
|
require 'fifa' ## get a list of all fifa countries with (three letter) codes
|
@@ -14,19 +16,18 @@ require 'footballdb/clubs'
|
|
14
16
|
require 'sportdb/config/version' # let version always go first
|
15
17
|
|
16
18
|
require 'sportdb/config/season_utils'
|
17
|
-
require 'sportdb/config/league_utils'
|
18
|
-
require 'sportdb/config/league'
|
19
|
-
require 'sportdb/config/league_reader'
|
20
19
|
require 'sportdb/config/wiki_index'
|
21
20
|
require 'sportdb/config/config'
|
22
21
|
|
23
22
|
|
24
23
|
|
25
24
|
## use global Import config - required for countries lookup / mapping (service)
|
26
|
-
SportDb::Import::ClubReader.config
|
27
|
-
SportDb::Import::ClubIndex.config
|
28
|
-
SportDb::Import::WikiReader.config
|
25
|
+
SportDb::Import::ClubReader.config = SportDb::Import.config
|
26
|
+
SportDb::Import::ClubIndex.config = SportDb::Import.config
|
27
|
+
SportDb::Import::WikiReader.config = SportDb::Import.config
|
29
28
|
|
29
|
+
SportDb::Import::LeagueReader.config = SportDb::Import.config
|
30
|
+
SportDb::Import::LeagueIndex.config = SportDb::Import.config
|
30
31
|
|
31
32
|
|
32
33
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module SportDb
|
4
4
|
module Import
|
5
5
|
|
6
|
-
# add builder convenience helper to ClubIndex
|
6
|
+
# add builder convenience helper to ClubIndex - why? why not?
|
7
7
|
class ClubIndex
|
8
8
|
|
9
9
|
def self.build( path )
|
@@ -14,7 +14,7 @@ class ClubIndex
|
|
14
14
|
end
|
15
15
|
recs
|
16
16
|
|
17
|
-
clubs =
|
17
|
+
clubs = new
|
18
18
|
clubs.add( recs )
|
19
19
|
|
20
20
|
## add wiki(pedia) anchored links
|
@@ -31,6 +31,23 @@ class ClubIndex
|
|
31
31
|
end # class ClubIndex
|
32
32
|
|
33
33
|
|
34
|
+
class LeagueIndex
|
35
|
+
|
36
|
+
def self.build( path )
|
37
|
+
recs = []
|
38
|
+
datafiles = Configuration.find_datafiles_leagues( path )
|
39
|
+
datafiles.each do |datafile|
|
40
|
+
recs += LeagueReader.read( datafile )
|
41
|
+
end
|
42
|
+
recs
|
43
|
+
|
44
|
+
leagues = new
|
45
|
+
leagues.add( recs )
|
46
|
+
leagues
|
47
|
+
end
|
48
|
+
end # class LeagueIndex
|
49
|
+
|
50
|
+
|
34
51
|
class Configuration
|
35
52
|
|
36
53
|
##
|
@@ -55,10 +72,19 @@ class Configuration
|
|
55
72
|
@clubs
|
56
73
|
end
|
57
74
|
|
75
|
+
def leagues
|
76
|
+
@leagues ||= build_league_index
|
77
|
+
@leagues
|
78
|
+
end
|
79
|
+
|
80
|
+
|
58
81
|
####
|
59
82
|
# todo/fix: find a better way to configure club / team datasets
|
60
83
|
attr_accessor :clubs_dir
|
61
|
-
def clubs_dir()
|
84
|
+
def clubs_dir() @clubs_dir; end ### note: return nil if NOT set on purpose for now - why? why not?
|
85
|
+
|
86
|
+
attr_accessor :leagues_dir
|
87
|
+
def leagues_dir() @leagues_dir; end
|
62
88
|
|
63
89
|
|
64
90
|
CLUBS_REGEX = %r{ (?:^|/) # beginning (^) or beginning of path (/)
|
@@ -66,12 +92,16 @@ class Configuration
|
|
66
92
|
clubs\.txt$
|
67
93
|
}x
|
68
94
|
|
69
|
-
|
70
95
|
CLUBS_WIKI_REGEX = %r{ (?:^|/) # beginning (^) or beginning of path (/)
|
71
96
|
(?:[a-z]{1,3}\.)? # optional country code/key e.g. eng.clubs.wiki.txt
|
72
97
|
clubs\.wiki\.txt$
|
73
98
|
}x
|
74
99
|
|
100
|
+
LEAGUES_REGEX = %r{ (?:^|/) # beginning (^) or beginning of path (/)
|
101
|
+
(?:[a-z]{1,3}\.)? # optional country code/key e.g. eng.clubs.txt
|
102
|
+
leagues\.txt$
|
103
|
+
}x
|
104
|
+
|
75
105
|
|
76
106
|
def self.find_datafiles( path, pattern )
|
77
107
|
datafiles = [] ## note: [country, path] pairs for now
|
@@ -86,9 +116,11 @@ class Configuration
|
|
86
116
|
pp datafiles
|
87
117
|
datafiles
|
88
118
|
end
|
119
|
+
|
89
120
|
def self.find_datafiles_clubs( path ) find_datafiles( path, CLUBS_REGEX ); end
|
90
121
|
def self.find_datafiles_clubs_wiki( path ) find_datafiles( path, CLUBS_WIKI_REGEX ); end
|
91
122
|
|
123
|
+
def self.find_datafiles_leagues( path ) find_datafiles( path, LEAGUES_REGEX ); end
|
92
124
|
|
93
125
|
|
94
126
|
def build_club_index
|
@@ -115,23 +147,19 @@ class Configuration
|
|
115
147
|
clubs
|
116
148
|
end # method build_club_index
|
117
149
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
150
|
+
def build_league_index
|
151
|
+
leagues = if leagues_dir ## check if clubs_dir is defined / set (otherwise it's nil)
|
152
|
+
LeagueIndex.build( leagues_dir )
|
153
|
+
else ## no leagues_dir set
|
154
|
+
puts "** !!! ERROR !! no config.leagues_dir set; sorry; CANNOT continue; please set"
|
155
|
+
exit 1
|
156
|
+
end
|
122
157
|
end
|
123
158
|
|
124
|
-
def read_leagues
|
125
|
-
#####
|
126
|
-
# add / read-in leagues config
|
127
|
-
@leagues = LeagueConfig.new
|
128
159
|
|
129
|
-
self ## return self for chaining
|
130
|
-
end
|
131
160
|
end # class Configuration
|
132
161
|
|
133
162
|
|
134
|
-
|
135
163
|
## lets you use
|
136
164
|
## SportDb::Import.configure do |config|
|
137
165
|
## config.hello = 'World'
|
@@ -7,8 +7,8 @@ module Boot ## note: use a different module than Config to avoid confusion
|
|
7
7
|
## maybe rename later gem itself to sportdb-boot - why? why not?
|
8
8
|
|
9
9
|
MAJOR = 0 ## todo: namespace inside version or something - why? why not??
|
10
|
-
MINOR =
|
11
|
-
PATCH =
|
10
|
+
MINOR = 8
|
11
|
+
PATCH = 0
|
12
12
|
VERSION = [MAJOR,MINOR,PATCH].join('.')
|
13
13
|
|
14
14
|
def self.version
|
@@ -23,9 +23,9 @@ module Boot ## note: use a different module than Config to avoid confusion
|
|
23
23
|
File.expand_path( File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) )
|
24
24
|
end
|
25
25
|
|
26
|
-
def self.data_dir ## rename to config_dir - why? why not?
|
27
|
-
"#{root}/config"
|
28
|
-
end
|
26
|
+
# def self.data_dir ## rename to config_dir - why? why not?
|
27
|
+
# "#{root}/config"
|
28
|
+
# end
|
29
29
|
|
30
30
|
|
31
31
|
end # module Boot
|
data/test/helper.rb
CHANGED
@@ -10,4 +10,5 @@ require 'minitest/autorun'
|
|
10
10
|
require 'sportdb/config'
|
11
11
|
|
12
12
|
|
13
|
-
SportDb::Import.config.clubs_dir
|
13
|
+
SportDb::Import.config.clubs_dir = '../../../openfootball/clubs'
|
14
|
+
SportDb::Import.config.leagues_dir = '../../../openfootball/leagues'
|
@@ -2,16 +2,18 @@
|
|
2
2
|
|
3
3
|
###
|
4
4
|
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/
|
5
|
+
# ruby -I ./lib -I ./test test/test_find_datafiles.rb
|
6
6
|
|
7
7
|
|
8
8
|
require 'helper'
|
9
9
|
|
10
|
-
class
|
10
|
+
class TestFindDatafiles < MiniTest::Test
|
11
11
|
|
12
12
|
def match_clubs( txt ) SportDb::Import::Configuration::CLUBS_REGEX.match( txt ); end
|
13
13
|
def match_clubs_wiki( txt ) SportDb::Import::Configuration::CLUBS_WIKI_REGEX.match( txt ); end
|
14
14
|
|
15
|
+
def match_leagues( txt ) SportDb::Import::Configuration::LEAGUES_REGEX.match( txt ); end
|
16
|
+
|
15
17
|
def test_find_clubs
|
16
18
|
assert match_clubs( 'de.clubs.txt' )
|
17
19
|
assert match_clubs( 'deutschland/de.clubs.txt' )
|
@@ -26,7 +28,6 @@ class TestConfig < MiniTest::Test
|
|
26
28
|
assert !match_clubs( 'de-deutschland/clubs.wiki.txt' )
|
27
29
|
assert !match_clubs( 'clubs.wiki.txt' )
|
28
30
|
assert !match_clubs( 'deutschland/clubs.wiki.txt' )
|
29
|
-
|
30
31
|
end
|
31
32
|
|
32
33
|
def test_find_clubs_wiki
|
@@ -45,4 +46,12 @@ class TestConfig < MiniTest::Test
|
|
45
46
|
assert match_clubs_wiki( 'deutschland/clubs.wiki.txt' )
|
46
47
|
end
|
47
48
|
|
48
|
-
|
49
|
+
def test_find_leagues
|
50
|
+
assert match_leagues( 'eng.leagues.txt' )
|
51
|
+
assert match_leagues( 'england/eng.leagues.txt' )
|
52
|
+
assert match_leagues( 'europe/england/leagues.txt' )
|
53
|
+
assert match_leagues( 'england/leagues.txt' )
|
54
|
+
assert match_leagues( 'leagues.txt' )
|
55
|
+
end
|
56
|
+
|
57
|
+
end # class TestFindDatafiles
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_leagues.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
class TestLeagues < MiniTest::Test
|
11
|
+
|
12
|
+
def test_match
|
13
|
+
pp SportDb::Import.config.leagues.errors
|
14
|
+
|
15
|
+
SportDb::Import.config.leagues.dump_duplicates
|
16
|
+
|
17
|
+
m = SportDb::Import.config.leagues.match( 'English Premier League' )
|
18
|
+
assert_equal 'English Premier League', m[0].name
|
19
|
+
assert_equal 'eng.1', m[0].key
|
20
|
+
assert_equal 'England', m[0].country.name
|
21
|
+
assert_equal 'eng', m[0].country.key
|
22
|
+
end
|
23
|
+
|
24
|
+
end # class TestLeagues
|
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.
|
4
|
+
version: 0.8.0
|
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-
|
11
|
+
date: 2019-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sportdb-countries
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.2.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sportdb-leagues
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.1.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.1.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: fifa
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +72,14 @@ dependencies:
|
|
58
72
|
requirements:
|
59
73
|
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
75
|
+
version: 1.0.0
|
62
76
|
type: :runtime
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
82
|
+
version: 1.0.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rdoc
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,44 +117,22 @@ extra_rdoc_files:
|
|
103
117
|
- Manifest.txt
|
104
118
|
- NOTES.md
|
105
119
|
- README.md
|
106
|
-
- config/leagues/eng.txt
|
107
|
-
- config/leagues/fr.txt
|
108
|
-
- config/leagues/gr.txt
|
109
|
-
- config/leagues/sco.txt
|
110
|
-
- config/world/ar.txt
|
111
|
-
- config/world/at.txt
|
112
|
-
- config/world/be.txt
|
113
|
-
- config/world/de.txt
|
114
|
-
- config/world/eng.txt
|
115
120
|
files:
|
116
121
|
- CHANGELOG.md
|
117
122
|
- Manifest.txt
|
118
123
|
- NOTES.md
|
119
124
|
- README.md
|
120
125
|
- Rakefile
|
121
|
-
- config/leagues/eng.txt
|
122
|
-
- config/leagues/fr.txt
|
123
|
-
- config/leagues/gr.txt
|
124
|
-
- config/leagues/sco.txt
|
125
|
-
- config/world/ar.txt
|
126
|
-
- config/world/at.txt
|
127
|
-
- config/world/be.txt
|
128
|
-
- config/world/de.txt
|
129
|
-
- config/world/eng.txt
|
130
126
|
- lib/sportdb/config.rb
|
131
127
|
- lib/sportdb/config/config.rb
|
132
|
-
- lib/sportdb/config/league.rb
|
133
|
-
- lib/sportdb/config/league_reader.rb
|
134
|
-
- lib/sportdb/config/league_utils.rb
|
135
128
|
- lib/sportdb/config/season_utils.rb
|
136
129
|
- lib/sportdb/config/version.rb
|
137
130
|
- lib/sportdb/config/wiki_index.rb
|
138
131
|
- test/helper.rb
|
139
132
|
- test/test_clubs.rb
|
140
|
-
- test/test_config.rb
|
141
133
|
- test/test_countries.rb
|
142
|
-
- test/
|
143
|
-
- test/
|
134
|
+
- test/test_find_datafiles.rb
|
135
|
+
- test/test_leagues.rb
|
144
136
|
- test/test_season_utils.rb
|
145
137
|
- test/test_wiki_index.rb
|
146
138
|
homepage: https://github.com/sportdb/sport.db
|
data/config/leagues/eng.txt
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
## all lowercase (no-space) key optional
|
2
|
-
## if not present auto-generate from name
|
3
|
-
|
4
|
-
#############################
|
5
|
-
## todo / future: add number of clubs / teams ?? why? why not?
|
6
|
-
## add up/down - relegation?, champions league, europe league? etc.
|
7
|
-
## check how to handle groups with playoffs ? (e.g. see belgium)
|
8
|
-
##
|
9
|
-
## use 1/2 or 1+2 or => for relegation playoff - why? why not???
|
10
|
-
|
11
|
-
|
12
|
-
1 => premierleague, English Premier League
|
13
|
-
2 => championship, English Championship League
|
14
|
-
3 => league1, English League 1
|
15
|
-
4 => league2, English League 2
|
16
|
-
5 => conference, English Conference
|
17
|
-
|
18
|
-
#########################################
|
19
|
-
# until (including) 2003-04 season
|
20
|
-
|
21
|
-
[2003-04] # or just use 2003-04: or similar - why? why not?
|
22
|
-
# or use 2003/04 - 1992/93 - why? why not?
|
23
|
-
|
24
|
-
1 => premierleague, English Premier League
|
25
|
-
2 => division1, English Division 1
|
26
|
-
3 => division2, English Division 2
|
27
|
-
4 => division3, English Division 3
|
28
|
-
|
29
|
-
|
30
|
-
#############################################
|
31
|
-
# note: in season 1992/93 the premier league starts
|
32
|
-
# until (including) 1991-92} season
|
33
|
-
|
34
|
-
[1991-92]
|
35
|
-
1 => division1, English Division 1
|
36
|
-
2 => division2, English Division 2
|
37
|
-
3 => division3, English Division 3
|
38
|
-
3a => division3n, English Division 3 (North)
|
39
|
-
3b => division3s, English Division 3 (South)
|
40
|
-
4 => division4, English Division 4 ## check if real?
|
data/config/leagues/fr.txt
DELETED
data/config/leagues/gr.txt
DELETED
data/config/leagues/sco.txt
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
|
2
|
-
1 => premiership, Scotish Premiership # starting w/ 2013-14 season
|
3
|
-
2 => championship, Scotish Championship
|
4
|
-
3 => league1, Scotish League One
|
5
|
-
4 => league2, Scotish League Two
|
6
|
-
|
7
|
-
|
8
|
-
[2012-13] ## until (including) 2012-13 season
|
9
|
-
1 => premierleague, Scotish Premiership
|
10
|
-
2 => division1, Scotish 1st Division
|
11
|
-
3 => division2, Scotish League One
|
12
|
-
4 => division3, Scotish League Two
|
13
|
-
|
14
|
-
|
15
|
-
[1997-98] ## until (including) season
|
16
|
-
1 => premierdivision, Scotish Premier Division
|
17
|
-
2 => division1, Scotish 1st Division
|
18
|
-
3 => division2, Scotish 2nd Division
|
19
|
-
4 => division3, Scotish 3rd Division
|
data/config/world/ar.txt
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
===========================
|
2
|
-
= Argentina (ar)
|
3
|
-
|
4
|
-
Buenos Aires
|
5
|
-
Santa Fe | Provincia Santa Fe
|
6
|
-
Córdoba | Provincia Córdoba
|
7
|
-
Mendoza | Provincia Mendoza
|
8
|
-
San Juan | Provincia San Juan
|
9
|
-
Tucumán | Provincia Tucumán
|
10
|
-
Entre Ríos | Provincia Entre Ríos
|
11
|
-
Misiones | Provincia Misiones
|
data/config/world/at.txt
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
=================================
|
2
|
-
= Österreich • Austria (at)
|
3
|
-
|
4
|
-
|
5
|
-
Wien | Vienna [en]
|
6
|
-
Burgenland
|
7
|
-
Niederösterreich
|
8
|
-
Oberösterreich
|
9
|
-
Steiermark
|
10
|
-
Kärnten
|
11
|
-
Salzburg
|
12
|
-
Tirol
|
13
|
-
Vorarlberg
|
14
|
-
|
15
|
-
|
16
|
-
== Niederösterreich ==
|
17
|
-
|
18
|
-
Wr. Neustadt | Wiener Neustadt
|
19
|
-
St. Pölten | Sankt Pölten
|
data/config/world/be.txt
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
==================================
|
2
|
-
= Belgium (be)
|
3
|
-
|
4
|
-
Brussels
|
5
|
-
|
6
|
-
Antwerpen › Vlaanderen | Antwerpen
|
7
|
-
Limburg › Vlaanderen | Limburg
|
8
|
-
Oost-Vlaanderen › Vlaanderen | Oost-Vlaanderen
|
9
|
-
West-Vlaanderen › Vlaanderen | West-Vlaanderen
|
10
|
-
|
11
|
-
Hainaut › Wallonie | Hainaut
|
12
|
-
Liège › Wallonie | Liège
|
13
|
-
|
14
|
-
|
15
|
-
== Hainaut › Wallonie ==
|
16
|
-
|
17
|
-
Mouscron [fr] | Moeskroen [nl]
|
18
|
-
Mons [fr] | Bergen [nl]
|
data/config/world/de.txt
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
============================================
|
2
|
-
= Germany • Deutschland (de)
|
3
|
-
|
4
|
-
Bayern
|
5
|
-
Nordrhein-Westfalen
|
6
|
-
Saarland
|
7
|
-
Niedersachsen
|
8
|
-
Brandenburg
|
9
|
-
Berlin
|
10
|
-
Hamburg
|
11
|
-
Bremen
|
12
|
-
Baden-Württemberg
|
13
|
-
Hessen
|
14
|
-
Rheinland-Pfalz
|
15
|
-
Schleswig-Holstein
|
16
|
-
Mecklenburg-Vorpommern
|
17
|
-
Sachsen
|
18
|
-
Sachsen-Anhalt
|
19
|
-
Thüringen
|
data/config/world/eng.txt
DELETED
@@ -1,162 +0,0 @@
|
|
1
|
-
##
|
2
|
-
# what name? use regions or maps or geos or zones or __?
|
3
|
-
|
4
|
-
#
|
5
|
-
# england
|
6
|
-
# see https://en.wikipedia.org/wiki/Subdivisions_of_England
|
7
|
-
# see https://www.bbc.co.uk/news/england/regions
|
8
|
-
|
9
|
-
##
|
10
|
-
# todo: for sort order - allow different sort name
|
11
|
-
# e.g. East Sussex => Sussex (East) or Sussex, East or something
|
12
|
-
# use <> for marking what counts for sorting
|
13
|
-
# e.g East <Sussex> => get auto-converted to Sussex, East - why? why not?
|
14
|
-
#
|
15
|
-
# more examples:
|
16
|
-
# North ‹Yorkshire› => Yorkshire (North) or Yorkshire, North
|
17
|
-
# Greater ‹London› => London, Greater
|
18
|
-
# Greater ‹Manchaster› => Manchaster, Greater
|
19
|
-
|
20
|
-
|
21
|
-
##
|
22
|
-
# note: uses all regions following the camra good beer guide (book)
|
23
|
-
#
|
24
|
-
|
25
|
-
======================================
|
26
|
-
== North West England ==
|
27
|
-
|
28
|
-
# Cumbria
|
29
|
-
# Lancashire
|
30
|
-
# Liverpool
|
31
|
-
# Manchester
|
32
|
-
|
33
|
-
Cheshire
|
34
|
-
Cumbria
|
35
|
-
Lancashire
|
36
|
-
Greater Manchester | Manchester, Greater
|
37
|
-
Liverpool & Merseyside | Merseyside ## note: added Liverpool & - why? why not?
|
38
|
-
|
39
|
-
|
40
|
-
===================================
|
41
|
-
== North East England
|
42
|
-
|
43
|
-
# Tees
|
44
|
-
# Tyne & Wear
|
45
|
-
|
46
|
-
Durham
|
47
|
-
Newcastle & Northumberland | Northumberland ## note: added Newcastle & - why? why not?
|
48
|
-
Tyne and Wear
|
49
|
-
|
50
|
-
|
51
|
-
=====================================
|
52
|
-
== Yorkshire & Lincolnshire ==
|
53
|
-
|
54
|
-
# Humberside
|
55
|
-
# Leeds & West Yorkshire
|
56
|
-
# Lincolnshire
|
57
|
-
# Sheffield & South Yorkshire
|
58
|
-
# York & North Yorkshire
|
59
|
-
|
60
|
-
Lincolnshire
|
61
|
-
West Yorkshire | Yorkshire, West | Yorkshire (West)
|
62
|
-
South Yorkshire | Yorkshire, South | Yorkshire (South)
|
63
|
-
North Yorkshire | Yorkshire, North | Yorkshire (North)
|
64
|
-
East Yorkshire | Yorkshire, East | Yorkshire (East)
|
65
|
-
|
66
|
-
|
67
|
-
==================================
|
68
|
-
== West Midlands
|
69
|
-
|
70
|
-
# Birmingham & Black Country
|
71
|
-
# Coventry & Warwickshire
|
72
|
-
# Hereford & Worcester
|
73
|
-
# Shropshire
|
74
|
-
# Stoke & Staffordshire
|
75
|
-
|
76
|
-
Herefordshire
|
77
|
-
Shropshire
|
78
|
-
Staffordshire
|
79
|
-
Warwickshire
|
80
|
-
Birmingham & West Midlands | West Midlands ## note: added Birmingham - why? why not?
|
81
|
-
Worcestershire
|
82
|
-
|
83
|
-
|
84
|
-
==================================
|
85
|
-
== East Midlands
|
86
|
-
|
87
|
-
# Derby
|
88
|
-
# Leicester
|
89
|
-
# Northampton
|
90
|
-
# Nottingham
|
91
|
-
|
92
|
-
Derbyshire
|
93
|
-
Leicestershire
|
94
|
-
Northamptonshire
|
95
|
-
Nottinghamshire
|
96
|
-
Rutland
|
97
|
-
|
98
|
-
|
99
|
-
===================================
|
100
|
-
== West & South West
|
101
|
-
|
102
|
-
# Bristol
|
103
|
-
# Cornwall
|
104
|
-
# Devon
|
105
|
-
# Gloucestershire
|
106
|
-
# Somerset
|
107
|
-
# Wiltshire
|
108
|
-
|
109
|
-
|
110
|
-
Cornwall
|
111
|
-
Devon
|
112
|
-
Bristol & Gloucestershire | Gloucestershire
|
113
|
-
Somerset
|
114
|
-
Wiltshire
|
115
|
-
|
116
|
-
|
117
|
-
=================================
|
118
|
-
== East
|
119
|
-
|
120
|
-
# Beds, Herts & Bucks
|
121
|
-
# Cambridgeshire
|
122
|
-
# Essex
|
123
|
-
# Norfolk
|
124
|
-
# Suffolk
|
125
|
-
|
126
|
-
Bedfordshire
|
127
|
-
Hertfordshire
|
128
|
-
Buckinghamshire
|
129
|
-
Cambridgeshire
|
130
|
-
Essex
|
131
|
-
Norfolk
|
132
|
-
Suffolk
|
133
|
-
|
134
|
-
|
135
|
-
===============================
|
136
|
-
== South
|
137
|
-
|
138
|
-
# Berkshire
|
139
|
-
# Dorset
|
140
|
-
# Hampshire & Isle of Wight
|
141
|
-
# Oxford
|
142
|
-
|
143
|
-
Berkshire
|
144
|
-
Dorset
|
145
|
-
Hampshire
|
146
|
-
Oxfordshire
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
===============================
|
151
|
-
== London & South East
|
152
|
-
|
153
|
-
# Kent
|
154
|
-
# London
|
155
|
-
# Surrey
|
156
|
-
# Sussex
|
157
|
-
|
158
|
-
Greater London | London, Greater
|
159
|
-
Kent
|
160
|
-
Surrey
|
161
|
-
East Sussex | Sussex, East | Sussex (East)
|
162
|
-
West Sussex | Sussex, West | Sussex (West)
|
@@ -1,118 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module SportDb
|
4
|
-
module Import
|
5
|
-
|
6
|
-
|
7
|
-
class LeagueConfig ## use LeagueInfo or LeagueMap or LeagueHash or similar
|
8
|
-
|
9
|
-
def initialize
|
10
|
-
|
11
|
-
## just use leagues without latest for latest - why? why not?
|
12
|
-
@leagues_latest = {
|
13
|
-
'es' => { '1' => 'liga', # spanish liga 1
|
14
|
-
'2' => 'liga2', # spanish liga 2
|
15
|
-
},
|
16
|
-
'it' => { '1' => 'seriea', # italian serie a
|
17
|
-
'2' => 'serieb', # italian serie b
|
18
|
-
},
|
19
|
-
'de' => { '1' => 'bundesliga', # german bundesliga
|
20
|
-
'2' => 'bundesliga2', # german 2. bundesliga
|
21
|
-
},
|
22
|
-
'nl' => { '1' => 'eredivisie' }, # dutch eredivisie
|
23
|
-
'be' => { '1' => 'proleague' }, # belgian pro league
|
24
|
-
'pt' => { '1' => 'liga' }, # portugese Primeira Liga
|
25
|
-
'tr' => { '1' => 'superlig' }, # turkish Süper Lig
|
26
|
-
|
27
|
-
# note: eng now read from txt
|
28
|
-
# 'eng' => { '1' => 'premierleague', # english premier league
|
29
|
-
# '2' => 'championship', # english championship league
|
30
|
-
# '3' => 'league1', # english league 1
|
31
|
-
# },
|
32
|
-
}
|
33
|
-
|
34
|
-
## change history to past or changes/changelog something - why? why not?
|
35
|
-
@leagues_history = {
|
36
|
-
|
37
|
-
# note: eng now read from txt
|
38
|
-
# 'eng' => {
|
39
|
-
# ## until (including) 2003-04 season
|
40
|
-
# '2003-04' => { '1' => 'premierleague', # english premier league
|
41
|
-
# '2' => 'division1', # english division 1
|
42
|
-
# },
|
43
|
-
# ## until (including) 1991-92} season
|
44
|
-
# '1991-92' => { '1' => 'division1', # english division 1
|
45
|
-
# '2' => 'division2', # english division 2
|
46
|
-
# }
|
47
|
-
# }
|
48
|
-
}
|
49
|
-
|
50
|
-
pp @leagues_latest
|
51
|
-
pp @leagues_history
|
52
|
-
|
53
|
-
%w(eng sco fr gr).each do |country|
|
54
|
-
hash = LeagueReader.read( "#{Boot.data_dir}/leagues/#{country}.txt" )
|
55
|
-
pp hash
|
56
|
-
|
57
|
-
hash.each do |season,league_hash|
|
58
|
-
if season == '*' ## assume latest / default season
|
59
|
-
@leagues_latest[ country ] = league_hash
|
60
|
-
else
|
61
|
-
@leagues_history[ country ] ||= {}
|
62
|
-
@leagues_history[ country ][ season ] = league_hash
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
pp @leagues_latest
|
68
|
-
pp @leagues_history
|
69
|
-
end
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
def basename( league, country:, season: )
|
74
|
-
## todo/check: rename league: to key: - why? why not?
|
75
|
-
|
76
|
-
if country.include?( '-' ) ## assume package name e.g. eng-england etc.
|
77
|
-
## cut off country code from package name
|
78
|
-
cc = country.split( '-' )[0] # use first part
|
79
|
-
else
|
80
|
-
cc = country
|
81
|
-
end
|
82
|
-
|
83
|
-
if season
|
84
|
-
puts " checking season >#{season}<"
|
85
|
-
## check history if season is provided / supplied / known
|
86
|
-
history = @leagues_history[ cc ]
|
87
|
-
if history
|
88
|
-
season_start_year = SeasonUtils.start_year( season ).to_i
|
89
|
-
##
|
90
|
-
## todo: sorty season keys - why? why not? -- assume reverse chronological order for now
|
91
|
-
history.keys.reverse.each do |key|
|
92
|
-
history_season_start_year = SeasonUtils.start_year( key ).to_i
|
93
|
-
puts " #{season_start_year} <= #{history_season_start_year} - #{season_start_year <= history_season_start_year}"
|
94
|
-
if season_start_year <= history_season_start_year
|
95
|
-
result = history[ key ][ league ]
|
96
|
-
if result
|
97
|
-
return "#{league}-#{result}"
|
98
|
-
else
|
99
|
-
return nil
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
latest = @leagues_latest[ cc ]
|
107
|
-
if latest
|
108
|
-
result = latest[ league ]
|
109
|
-
return "#{league}-#{result}" if result
|
110
|
-
end
|
111
|
-
|
112
|
-
nil
|
113
|
-
end # method basename
|
114
|
-
end # class LeagueConfig
|
115
|
-
|
116
|
-
|
117
|
-
end ## module Import
|
118
|
-
end ## module SportDb
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
|
4
|
-
module SportDb
|
5
|
-
module Import
|
6
|
-
|
7
|
-
class LeagueReader
|
8
|
-
|
9
|
-
def self.read( path )
|
10
|
-
txt = File.open( path, 'r:utf-8' ).read
|
11
|
-
parse( txt )
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
SEASON_REGEX = /\[
|
17
|
-
(?<season>
|
18
|
-
\d{4}
|
19
|
-
(-\d{2,4})?
|
20
|
-
)
|
21
|
-
\]/x
|
22
|
-
|
23
|
-
def self.parse( txt )
|
24
|
-
hash = {}
|
25
|
-
season = '*' ## use '*' for default/latest season
|
26
|
-
|
27
|
-
txt.each_line do |line|
|
28
|
-
line = line.strip
|
29
|
-
|
30
|
-
next if line.empty?
|
31
|
-
next if line.start_with?( '#' ) ## skip comments too
|
32
|
-
|
33
|
-
## strip inline comments too
|
34
|
-
line = line.sub( /#.*/, '' ).strip
|
35
|
-
|
36
|
-
pp line
|
37
|
-
|
38
|
-
|
39
|
-
if (m=line.match( SEASON_REGEX ))
|
40
|
-
season = m[:season]
|
41
|
-
else
|
42
|
-
key_line, values_line = line.split( '=>' )
|
43
|
-
values = values_line.split( ',' )
|
44
|
-
|
45
|
-
## remove leading and trailing spaces
|
46
|
-
key_line = key_line.strip
|
47
|
-
values = values.map { |value| value.strip }
|
48
|
-
pp values
|
49
|
-
|
50
|
-
league_key = key_line
|
51
|
-
league_basename = values[0]
|
52
|
-
|
53
|
-
hash[season] ||= {}
|
54
|
-
hash[season][league_key] = league_basename
|
55
|
-
end
|
56
|
-
end
|
57
|
-
hash
|
58
|
-
end # method read
|
59
|
-
|
60
|
-
end ## class LeagueReader
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
end ## module Import
|
65
|
-
end ## module SportDb
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
|
4
|
-
module LeagueHelper
|
5
|
-
def basename( league, country:, season: nil )
|
6
|
-
## e.g. eng-england, 2011-12, 1 returns 1-premierleague
|
7
|
-
##
|
8
|
-
## allow country code or (repo) package name
|
9
|
-
## e.g. eng-england or eng
|
10
|
-
## de-deutschland or de etc.
|
11
|
-
|
12
|
-
leagues = SportDb::Import.config.leagues
|
13
|
-
|
14
|
-
result = leagues.basename( league, country: country, season: season )
|
15
|
-
|
16
|
-
##
|
17
|
-
# note: if no mapping / nothing found return league e.g. 1, 2, 3, 3a, 3b, cup(?), etc.
|
18
|
-
result ? result : league
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
module LeagueUtils
|
23
|
-
extend LeagueHelper
|
24
|
-
end
|
data/test/test_league_reader.rb
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_league_reader.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
class TestLeagueReader < MiniTest::Test
|
11
|
-
|
12
|
-
def test_parse_eng
|
13
|
-
|
14
|
-
hash = SportDb::Import::LeagueReader.parse( <<TXT )
|
15
|
-
1 => premierleague, English Premier League
|
16
|
-
2 => championship, English Championship League
|
17
|
-
3 => league1, English League 1
|
18
|
-
4 => league2, English League 2
|
19
|
-
5 => conference, English Conference
|
20
|
-
|
21
|
-
#########################################
|
22
|
-
# until (including) 2003-04 season
|
23
|
-
|
24
|
-
[2003-04] # or just use 2003-04: or similar - why? why not?
|
25
|
-
# or use 2003/04 - 1992/93 - why? why not?
|
26
|
-
|
27
|
-
1 => premierleague, English Premier League
|
28
|
-
2 => division1, English Division 1
|
29
|
-
3 => division2, English Division 2
|
30
|
-
4 => division3, English Division 3
|
31
|
-
|
32
|
-
|
33
|
-
#############################################
|
34
|
-
# note: in season 1992/93 the premier league starts
|
35
|
-
# until (including) 1991-92} season
|
36
|
-
|
37
|
-
[1991-92]
|
38
|
-
1 => division1, English Division 1
|
39
|
-
2 => division2, English Division 2
|
40
|
-
3 => division3, English Division 3
|
41
|
-
3a => division3n, English Division 3 (North)
|
42
|
-
3b => division3s, English Division 3 (South)
|
43
|
-
4 => division4, English Division 4 ## check if real?
|
44
|
-
TXT
|
45
|
-
|
46
|
-
|
47
|
-
assert_equal 'premierleague', hash['*']['1']
|
48
|
-
assert_equal 'championship', hash['*']['2']
|
49
|
-
assert_equal 'league1', hash['*']['3']
|
50
|
-
|
51
|
-
assert_equal 'division1', hash['1991-92']['1']
|
52
|
-
assert_equal 'division2', hash['1991-92']['2']
|
53
|
-
end # method test_parse_eng
|
54
|
-
end # class TestLeagueUtils
|
data/test/test_league_utils.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
###
|
4
|
-
# to run use
|
5
|
-
# ruby -I ./lib -I ./test test/test_league_utils.rb
|
6
|
-
|
7
|
-
|
8
|
-
require 'helper'
|
9
|
-
|
10
|
-
class TestLeagueUtils < MiniTest::Test
|
11
|
-
|
12
|
-
def test_basename_eng
|
13
|
-
assert_equal '1-premierleague', LeagueUtils.basename( '1', country: 'eng', season: '2011-12' )
|
14
|
-
assert_equal '1-premierleague', LeagueUtils.basename( '1', country: 'eng' )
|
15
|
-
assert_equal '1-premierleague', LeagueUtils.basename( '1', country: 'eng-england' ) ## allow country code or (repo) package name
|
16
|
-
assert_equal '1-division1', LeagueUtils.basename( '1', country: 'eng', season: '1991-92' )
|
17
|
-
assert_equal '3a', LeagueUtils.basename( '3a', country: 'eng', season: '2011-12' )
|
18
|
-
|
19
|
-
assert_equal '2-championship', LeagueUtils.basename( '2', country: 'eng', season: '2011-12' )
|
20
|
-
assert_equal '2-championship', LeagueUtils.basename( '2', country: 'eng' )
|
21
|
-
assert_equal '2-championship', LeagueUtils.basename( '2', country: 'eng-england' ) ## allow country code or (repo) package name
|
22
|
-
assert_equal '2-division1', LeagueUtils.basename( '2', country: 'eng', season: '2003-04' )
|
23
|
-
assert_equal '2-division2', LeagueUtils.basename( '2', country: 'eng', season: '1991-92' )
|
24
|
-
assert_equal '2-division2', LeagueUtils.basename( '2', country: 'eng', season: '1989-90' )
|
25
|
-
end # method test_basename
|
26
|
-
|
27
|
-
def test_basename_sco
|
28
|
-
assert_equal '1-premiership', LeagueUtils.basename( '1', country: 'sco' )
|
29
|
-
assert_equal '1-premierleague', LeagueUtils.basename( '1', country: 'sco', season: '2012-13' )
|
30
|
-
assert_equal '1-premierdivision', LeagueUtils.basename( '1', country: 'sco', season: '1997-98' )
|
31
|
-
|
32
|
-
assert_equal '2-championship', LeagueUtils.basename( '2', country: 'sco' )
|
33
|
-
assert_equal '2-division1', LeagueUtils.basename( '2', country: 'sco', season: '2012-13' )
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_basename_fr
|
37
|
-
assert_equal '1-ligue1', LeagueUtils.basename( '1', country: 'fr' )
|
38
|
-
assert_equal '1-division1', LeagueUtils.basename( '1', country: 'fr', season: '2001-02' )
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_basename_gr
|
42
|
-
assert_equal '1-superleague', LeagueUtils.basename( '1', country: 'gr' )
|
43
|
-
assert_equal '1-alphaethniki', LeagueUtils.basename( '1', country: 'gr', season: '2005-06' )
|
44
|
-
end
|
45
|
-
|
46
|
-
end # class TestLeagueUtils
|