sportdb-config 0.6.0 → 0.7.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/{HISTORY.md → CHANGELOG.md} +0 -0
- data/Manifest.txt +1 -11
- data/Rakefile +8 -4
- data/lib/sportdb/config.rb +9 -33
- data/lib/sportdb/config/config.rb +36 -4
- data/lib/sportdb/config/version.rb +1 -1
- data/test/test_clubs.rb +76 -20
- metadata +48 -16
- data/lib/sportdb/config/club.rb +0 -147
- data/lib/sportdb/config/club_index.rb +0 -212
- data/lib/sportdb/config/club_reader.rb +0 -278
- data/lib/sportdb/config/countries.rb +0 -58
- data/lib/sportdb/config/variants.rb +0 -185
- data/lib/sportdb/config/wiki_reader.rb +0 -104
- data/test/test_club_index.rb +0 -100
- data/test/test_club_reader.rb +0 -150
- data/test/test_variants.rb +0 -46
- data/test/test_wiki_reader.rb +0 -77
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 764ca27d3655813274fb75c7ccbb8f1d4e1dcb71
|
4
|
+
data.tar.gz: eef58b830eda10906d497555c681aab449436be0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de0e7967586e5e1ef5b90bbcc0eba6b780d56d089a951dc3dab767b4c0b229b2c92afa4768c452702b23f5c8c17dd99b65254672e9534ab29a6987c629f1023d
|
7
|
+
data.tar.gz: 299672688171ddd354c55ee42a98eef867d90a5af345fa1885d23934a5811bd4610cab371f24c293fc77cc22178f1c901d74282a7fee862c58288285794dd02f
|
data/{HISTORY.md → CHANGELOG.md}
RENAMED
File without changes
|
data/Manifest.txt
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
CHANGELOG.md
|
2
2
|
Manifest.txt
|
3
3
|
NOTES.md
|
4
4
|
README.md
|
@@ -13,28 +13,18 @@ config/world/be.txt
|
|
13
13
|
config/world/de.txt
|
14
14
|
config/world/eng.txt
|
15
15
|
lib/sportdb/config.rb
|
16
|
-
lib/sportdb/config/club.rb
|
17
|
-
lib/sportdb/config/club_index.rb
|
18
|
-
lib/sportdb/config/club_reader.rb
|
19
16
|
lib/sportdb/config/config.rb
|
20
|
-
lib/sportdb/config/countries.rb
|
21
17
|
lib/sportdb/config/league.rb
|
22
18
|
lib/sportdb/config/league_reader.rb
|
23
19
|
lib/sportdb/config/league_utils.rb
|
24
20
|
lib/sportdb/config/season_utils.rb
|
25
|
-
lib/sportdb/config/variants.rb
|
26
21
|
lib/sportdb/config/version.rb
|
27
22
|
lib/sportdb/config/wiki_index.rb
|
28
|
-
lib/sportdb/config/wiki_reader.rb
|
29
23
|
test/helper.rb
|
30
|
-
test/test_club_index.rb
|
31
|
-
test/test_club_reader.rb
|
32
24
|
test/test_clubs.rb
|
33
25
|
test/test_config.rb
|
34
26
|
test/test_countries.rb
|
35
27
|
test/test_league_reader.rb
|
36
28
|
test/test_league_utils.rb
|
37
29
|
test/test_season_utils.rb
|
38
|
-
test/test_variants.rb
|
39
30
|
test/test_wiki_index.rb
|
40
|
-
test/test_wiki_reader.rb
|
data/Rakefile
CHANGED
@@ -11,16 +11,20 @@ Hoe.spec 'sportdb-config' do
|
|
11
11
|
self.urls = ['https://github.com/sportdb/sport.db']
|
12
12
|
|
13
13
|
self.author = 'Gerald Bauer'
|
14
|
-
self.email
|
14
|
+
self.email = 'opensport@googlegroups.com'
|
15
15
|
|
16
16
|
# switch extension to .markdown for gihub formatting
|
17
|
-
self.readme_file
|
18
|
-
self.history_file = '
|
17
|
+
self.readme_file = 'README.md'
|
18
|
+
self.history_file = 'CHANGELOG.md'
|
19
19
|
|
20
20
|
self.licenses = ['Public Domain']
|
21
21
|
|
22
22
|
self.extra_deps = [
|
23
|
-
['
|
23
|
+
['sportdb-countries', '>= 0.2.0'],
|
24
|
+
['sportdb-clubs', '>= 0.2.0'],
|
25
|
+
## dataset libs / gems
|
26
|
+
['fifa', '>= 1.0.0'], ## for (builtin/default) countries
|
27
|
+
['footballdb-clubs', '>= 0.2.0'], ## for (builtin/default) clubs
|
24
28
|
]
|
25
29
|
|
26
30
|
self.spec_extras = {
|
data/lib/sportdb/config.rb
CHANGED
@@ -1,20 +1,12 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
+
### our own sportdb libs / gems
|
4
|
+
require 'sportdb/countries'
|
5
|
+
require 'sportdb/clubs'
|
3
6
|
|
4
|
-
|
5
|
-
require 'date'
|
6
|
-
require 'fileutils'
|
7
|
-
|
8
|
-
|
9
|
-
## 3rd party gems
|
10
|
-
require 'csvreader'
|
11
|
-
|
12
|
-
def read_csv( path )
|
13
|
-
CsvHash.read( path, :header_converters => :symbol )
|
14
|
-
end
|
15
|
-
|
16
|
-
|
7
|
+
### "built-in" default dataset libs / gems
|
17
8
|
require 'fifa' ## get a list of all fifa countries with (three letter) codes
|
9
|
+
require 'footballdb/clubs'
|
18
10
|
|
19
11
|
|
20
12
|
###
|
@@ -25,31 +17,15 @@ require 'sportdb/config/season_utils'
|
|
25
17
|
require 'sportdb/config/league_utils'
|
26
18
|
require 'sportdb/config/league'
|
27
19
|
require 'sportdb/config/league_reader'
|
28
|
-
|
29
|
-
require 'sportdb/config/variants'
|
30
|
-
require 'sportdb/config/countries'
|
31
|
-
require 'sportdb/config/club'
|
32
|
-
require 'sportdb/config/club_reader'
|
33
|
-
require 'sportdb/config/club_index'
|
34
|
-
require 'sportdb/config/wiki_reader'
|
35
20
|
require 'sportdb/config/wiki_index'
|
36
21
|
require 'sportdb/config/config'
|
37
22
|
|
38
23
|
|
39
24
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
class Test ## todo/check: works with module too? use a module - why? why not?
|
45
|
-
|
46
|
-
####
|
47
|
-
# todo/fix: find a better way to configure shared test datasets - why? why not?
|
48
|
-
def self.data_dir() @data_dir ||= './test'; end
|
49
|
-
def self.data_dir=( path ) @data_dir = path; end
|
50
|
-
end
|
51
|
-
|
52
|
-
end # module SportDb
|
25
|
+
## use global Import config - required for countries lookup / mapping (service)
|
26
|
+
SportDb::Import::ClubReader.config = SportDb::Import.config
|
27
|
+
SportDb::Import::ClubIndex.config = SportDb::Import.config
|
28
|
+
SportDb::Import::WikiReader.config = SportDb::Import.config
|
53
29
|
|
54
30
|
|
55
31
|
|
@@ -3,6 +3,33 @@
|
|
3
3
|
module SportDb
|
4
4
|
module Import
|
5
5
|
|
6
|
+
# add builder convenience helper to ClubIndex
|
7
|
+
class ClubIndex
|
8
|
+
|
9
|
+
def self.build( path )
|
10
|
+
recs = []
|
11
|
+
datafiles = Configuration.find_datafiles_clubs( path )
|
12
|
+
datafiles.each do |datafile|
|
13
|
+
recs += ClubReader.read( datafile )
|
14
|
+
end
|
15
|
+
recs
|
16
|
+
|
17
|
+
clubs = self.new
|
18
|
+
clubs.add( recs )
|
19
|
+
|
20
|
+
## add wiki(pedia) anchored links
|
21
|
+
recs = []
|
22
|
+
datafiles = Configuration.find_datafiles_clubs_wiki( path )
|
23
|
+
datafiles.each do |datafile|
|
24
|
+
recs += WikiReader.read( datafile )
|
25
|
+
end
|
26
|
+
|
27
|
+
pp recs
|
28
|
+
clubs.add_wiki( recs )
|
29
|
+
clubs
|
30
|
+
end
|
31
|
+
end # class ClubIndex
|
32
|
+
|
6
33
|
|
7
34
|
class Configuration
|
8
35
|
|
@@ -31,7 +58,7 @@ class Configuration
|
|
31
58
|
####
|
32
59
|
# todo/fix: find a better way to configure club / team datasets
|
33
60
|
attr_accessor :clubs_dir
|
34
|
-
def clubs_dir() @clubs_dir
|
61
|
+
def clubs_dir() @clubs_dir; end ### note: return nil if NOT set on purpose for now - why? why not?
|
35
62
|
|
36
63
|
|
37
64
|
CLUBS_REGEX = %r{ (?:^|/) # beginning (^) or beginning of path (/)
|
@@ -63,13 +90,20 @@ class Configuration
|
|
63
90
|
def self.find_datafiles_clubs_wiki( path ) find_datafiles( path, CLUBS_WIKI_REGEX ); end
|
64
91
|
|
65
92
|
|
93
|
+
|
66
94
|
def build_club_index
|
67
95
|
## unify team names; team (builtin/known/shared) name mappings
|
68
96
|
## cleanup team names - use local ("native") name with umlaut etc.
|
69
97
|
## todo/fix: add to teamreader
|
70
98
|
## check that name and alt_names for a club are all unique (not duplicates)
|
71
99
|
|
72
|
-
clubs =
|
100
|
+
clubs = if clubs_dir ## check if clubs_dir is defined / set (otherwise it's nil)
|
101
|
+
ClubIndex.build( clubs_dir )
|
102
|
+
else ## no clubs_dir set - try using builtin from footballdb-clubs
|
103
|
+
## todo/fix: use build_club_index make public (remove private)!!!!
|
104
|
+
FootballDb::Club.club_index
|
105
|
+
end
|
106
|
+
|
73
107
|
if clubs.errors?
|
74
108
|
puts ""
|
75
109
|
puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
@@ -82,8 +116,6 @@ class Configuration
|
|
82
116
|
end # method build_club_index
|
83
117
|
|
84
118
|
|
85
|
-
|
86
|
-
|
87
119
|
def leagues
|
88
120
|
read_leagues() if @leagues.nil?
|
89
121
|
@leagues
|
@@ -7,7 +7,7 @@ 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 =
|
10
|
+
MINOR = 7
|
11
11
|
PATCH = 0
|
12
12
|
VERSION = [MAJOR,MINOR,PATCH].join('.')
|
13
13
|
|
data/test/test_clubs.rb
CHANGED
@@ -9,35 +9,91 @@ require 'helper'
|
|
9
9
|
|
10
10
|
class TestClubs < MiniTest::Test
|
11
11
|
|
12
|
-
def
|
13
|
-
|
12
|
+
def test_match
|
13
|
+
pp SportDb::Import.config.clubs.errors
|
14
14
|
|
15
|
+
SportDb::Import.config.clubs.dump_duplicates
|
15
16
|
|
16
|
-
|
17
|
-
assert_equal '
|
18
|
-
|
17
|
+
m = SportDb::Import.config.clubs.match( 'Rapid Wien' )
|
18
|
+
assert_equal 'SK Rapid Wien', m[0].name
|
19
|
+
assert_equal 'Austria', m[0].country.name
|
20
|
+
assert_equal 'Wien', m[0].city
|
21
|
+
|
22
|
+
m = SportDb::Import.config.clubs.match( 'rapid wien' )
|
23
|
+
assert_equal 'SK Rapid Wien', m[0].name
|
24
|
+
assert_equal 'Austria', m[0].country.name
|
25
|
+
assert_equal 'Wien', m[0].city
|
26
|
+
|
27
|
+
## note: all dots (.) get always removed
|
28
|
+
m = SportDb::Import.config.clubs.match( '...r.a.p.i.d w.i.e.n...' )
|
29
|
+
assert_equal 'SK Rapid Wien', m[0].name
|
30
|
+
assert_equal 'Austria', m[0].country.name
|
31
|
+
assert_equal 'Wien', m[0].city
|
32
|
+
|
33
|
+
## note: all spaces and dashes (-) get always removed
|
34
|
+
m = SportDb::Import.config.clubs.match( '--- r a p i d w i e n ---' )
|
35
|
+
assert_equal 'SK Rapid Wien', m[0].name
|
36
|
+
assert_equal 'Austria', m[0].country.name
|
37
|
+
assert_equal 'Wien', m[0].city
|
38
|
+
|
39
|
+
m = SportDb::Import.config.clubs.match( 'RAPID WIEN' )
|
40
|
+
assert_equal 'SK Rapid Wien', m[0].name
|
41
|
+
assert_equal 'Austria', m[0].country.name
|
42
|
+
assert_equal 'Wien', m[0].city
|
43
|
+
|
44
|
+
|
45
|
+
c = SportDb::Import.config.clubs[ 'SK Rapid Wien' ] ## check canoncial name match (only)
|
46
|
+
assert_equal 'SK Rapid Wien', c.name
|
47
|
+
assert_equal 'Austria', c.country.name
|
48
|
+
assert_equal 'Wien', c.city
|
19
49
|
|
20
|
-
def test_year
|
21
|
-
assert_equal 'FC Linz', strip_year( 'FC Linz (1946-2001, 2013-)' )
|
22
|
-
end
|
23
50
|
|
51
|
+
m = SportDb::Import.config.clubs.match( 'Arsenal' )
|
52
|
+
assert_equal 3, m.size
|
24
53
|
|
25
|
-
|
26
|
-
|
27
|
-
club.name = "Rapid Wien"
|
54
|
+
m = SportDb::Import.config.clubs.match( 'ARSENAL' )
|
55
|
+
assert_equal 3, m.size
|
28
56
|
|
29
|
-
|
30
|
-
|
31
|
-
assert_equal
|
57
|
+
m = SportDb::Import.config.clubs.match_by( name: 'Arsenal', country: 'eng' )
|
58
|
+
assert_equal 1, m.size
|
59
|
+
assert_equal 'Arsenal FC', m[0].name
|
60
|
+
assert_equal 'England', m[0].country.name
|
61
|
+
assert_equal 'London', m[0].city
|
62
|
+
|
63
|
+
m = SportDb::Import.config.clubs.match_by( name: 'Arsenal', country: 'ar' )
|
64
|
+
assert_equal 1, m.size
|
65
|
+
assert_equal 'Arsenal de Sarandí', m[0].name
|
66
|
+
assert_equal 'Argentina', m[0].country.name
|
67
|
+
assert_equal 'Sarandí', m[0].city
|
68
|
+
|
69
|
+
m = SportDb::Import.config.clubs.match_by( name: 'Arsenal', country: 'ru' )
|
70
|
+
assert_equal 1, m.size
|
71
|
+
assert_equal 'Arsenal Tula', m[0].name
|
72
|
+
assert_equal 'Russia', m[0].country.name
|
73
|
+
assert_equal 'Tula', m[0].city
|
74
|
+
|
75
|
+
|
76
|
+
m = SportDb::Import.config.clubs.match( 'Arsenal FC' )
|
77
|
+
assert_equal 2, m.size
|
78
|
+
|
79
|
+
m = SportDb::Import.config.clubs.match( 'Arsenal F.C.' )
|
80
|
+
assert_equal 2, m.size
|
81
|
+
|
82
|
+
m = SportDb::Import.config.clubs.match( '...A.r.s.e.n.a.l... F.C...' )
|
83
|
+
assert_equal 2, m.size
|
84
|
+
end
|
32
85
|
|
33
|
-
|
86
|
+
def test_wikipedia ## test wikipedia names and links/urls
|
34
87
|
|
35
|
-
|
88
|
+
m = SportDb::Import.config.clubs.match( 'Club Brugge KV' )
|
89
|
+
assert_equal 1, m.size
|
90
|
+
assert_equal 'Club Brugge KV', m[0].wikipedia
|
91
|
+
assert_equal 'https://en.wikipedia.org/wiki/Club_Brugge_KV', m[0].wikipedia_url
|
36
92
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
assert_equal
|
93
|
+
m = SportDb::Import.config.clubs.match( 'RSC Anderlecht' )
|
94
|
+
assert_equal 1, m.size
|
95
|
+
assert_equal 'R.S.C. Anderlecht', m[0].wikipedia
|
96
|
+
assert_equal 'https://en.wikipedia.org/wiki/R.S.C._Anderlecht', m[0].wikipedia_url
|
41
97
|
end
|
42
98
|
|
43
99
|
end # class TestClubs
|
metadata
CHANGED
@@ -1,29 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sportdb-config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.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-08-
|
11
|
+
date: 2019-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sportdb-countries
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.2.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.2.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sportdb-clubs
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.2.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.2.0
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: fifa
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
16
44
|
requirements:
|
17
45
|
- - ">="
|
18
46
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
47
|
+
version: 1.0.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.0.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: footballdb-clubs
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.2.0
|
20
62
|
type: :runtime
|
21
63
|
prerelease: false
|
22
64
|
version_requirements: !ruby/object:Gem::Requirement
|
23
65
|
requirements:
|
24
66
|
- - ">="
|
25
67
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
68
|
+
version: 0.2.0
|
27
69
|
- !ruby/object:Gem::Dependency
|
28
70
|
name: rdoc
|
29
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -57,7 +99,7 @@ email: opensport@googlegroups.com
|
|
57
99
|
executables: []
|
58
100
|
extensions: []
|
59
101
|
extra_rdoc_files:
|
60
|
-
-
|
102
|
+
- CHANGELOG.md
|
61
103
|
- Manifest.txt
|
62
104
|
- NOTES.md
|
63
105
|
- README.md
|
@@ -71,7 +113,7 @@ extra_rdoc_files:
|
|
71
113
|
- config/world/de.txt
|
72
114
|
- config/world/eng.txt
|
73
115
|
files:
|
74
|
-
-
|
116
|
+
- CHANGELOG.md
|
75
117
|
- Manifest.txt
|
76
118
|
- NOTES.md
|
77
119
|
- README.md
|
@@ -86,31 +128,21 @@ files:
|
|
86
128
|
- config/world/de.txt
|
87
129
|
- config/world/eng.txt
|
88
130
|
- lib/sportdb/config.rb
|
89
|
-
- lib/sportdb/config/club.rb
|
90
|
-
- lib/sportdb/config/club_index.rb
|
91
|
-
- lib/sportdb/config/club_reader.rb
|
92
131
|
- lib/sportdb/config/config.rb
|
93
|
-
- lib/sportdb/config/countries.rb
|
94
132
|
- lib/sportdb/config/league.rb
|
95
133
|
- lib/sportdb/config/league_reader.rb
|
96
134
|
- lib/sportdb/config/league_utils.rb
|
97
135
|
- lib/sportdb/config/season_utils.rb
|
98
|
-
- lib/sportdb/config/variants.rb
|
99
136
|
- lib/sportdb/config/version.rb
|
100
137
|
- lib/sportdb/config/wiki_index.rb
|
101
|
-
- lib/sportdb/config/wiki_reader.rb
|
102
138
|
- test/helper.rb
|
103
|
-
- test/test_club_index.rb
|
104
|
-
- test/test_club_reader.rb
|
105
139
|
- test/test_clubs.rb
|
106
140
|
- test/test_config.rb
|
107
141
|
- test/test_countries.rb
|
108
142
|
- test/test_league_reader.rb
|
109
143
|
- test/test_league_utils.rb
|
110
144
|
- test/test_season_utils.rb
|
111
|
-
- test/test_variants.rb
|
112
145
|
- test/test_wiki_index.rb
|
113
|
-
- test/test_wiki_reader.rb
|
114
146
|
homepage: https://github.com/sportdb/sport.db
|
115
147
|
licenses:
|
116
148
|
- Public Domain
|