sportdb-config 1.0.1 → 1.1.1

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: 26a7fb71c04c3bbd3ce14a96a311ee03500ffe70
4
- data.tar.gz: a7bdc7a25f3cc3dde81a4a89ccbea7a186b80066
3
+ metadata.gz: 75debc4f481f8b0cc4bd7f9d885d1bf526527189
4
+ data.tar.gz: '0489bb3235ebfb289ccf93c758a3c4a0cc7e37de'
5
5
  SHA512:
6
- metadata.gz: dcb55016fd05624851a4cecaf615534842750cd9ac2db8f45acd1cdb1f3b7531562ebb502e650f016ce2e6cb97c91470777b2e63fed60fa0efd10bc26fe67572
7
- data.tar.gz: 5d7d53f05266901a021583850aad1cb9a9c65ce189a282c9e85c109675343236c9aebc740c55274bb72d3f8e1720d3bbe6e35c9d3200b5e4d20eaf708c96f0e0
6
+ metadata.gz: 632a90def9488cbdc5eed0b6de6ba7e2796a2050618d7e1c077d6a3084627e94a5ac4c2e9868f6dfacc76115566425e6767b24994c03e654fde27de2c62cded0
7
+ data.tar.gz: 18882a224e55b3145a3deaf3892bd4f6ef70d3e0d0f1bec92f37d477deb4aa38bf5b1ae8c9aa54b17e7798130fb430bfcea7eca46b24ed0e48ae101ad3276d0a
@@ -4,6 +4,7 @@ NOTES.md
4
4
  README.md
5
5
  Rakefile
6
6
  lib/sportdb/config.rb
7
+ lib/sportdb/config/catalog.rb
7
8
  lib/sportdb/config/config.rb
8
9
  lib/sportdb/config/version.rb
9
10
  lib/sportdb/config/wiki_index.rb
@@ -11,4 +12,5 @@ test/helper.rb
11
12
  test/test_clubs.rb
12
13
  test/test_countries.rb
13
14
  test/test_leagues.rb
15
+ test/test_national_teams.rb
14
16
  test/test_wiki_index.rb
data/NOTES.md CHANGED
@@ -3,6 +3,7 @@
3
3
  ## Todos
4
4
 
5
5
  - use a different name for sportdb-config
6
+ - yes, use sportdb-catalogs !!!!
6
7
  - use sportdb-boot and SportDb::Boot or
7
8
  - use sportdb-conf - why? why not?
8
9
  - or sportdb-setup/startup/...
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require './lib/sportdb/config/version.rb'
3
3
 
4
4
  Hoe.spec 'sportdb-config' do
5
5
 
6
- self.version = SportDb::Boot::VERSION
6
+ self.version = SportDb::Module::Catalogs::VERSION
7
7
 
8
8
  self.summary = "sportdb-config - sport.db configuration settings and built-in defaults"
9
9
  self.description = summary
@@ -20,11 +20,11 @@ Hoe.spec 'sportdb-config' do
20
20
  self.licenses = ['Public Domain']
21
21
 
22
22
  self.extra_deps = [
23
- ['sportdb-formats', '>= 1.0.1'],
23
+ ['sportdb-formats', '>= 1.1.0'],
24
24
  ## dataset libs / gems
25
- ['fifa', '>= 2020.5.10'], ## for (builtin/default) countries
26
- ['footballdb-clubs', '>= 2020.5.10'], ## for (builtin/default) clubs
27
- ['footballdb-leagues', '>= 2020.5.10'], ## for (builtin/default) leagues & cups
25
+ ['fifa', '>= 2020.5.18'], ## for (builtin/default) countries
26
+ ['footballdb-clubs', '>= 2020.6.16'], ## for (builtin/default) clubs
27
+ ['footballdb-leagues', '>= 2020.6.16'], ## for (builtin/default) leagues & cups
28
28
  ]
29
29
 
30
30
  self.spec_extras = {
@@ -17,4 +17,4 @@ require 'sportdb/config/catalog'
17
17
  require 'sportdb/config/config'
18
18
 
19
19
 
20
- puts SportDb::Boot.banner # say hello
20
+ puts SportDb::Module::Catalogs.banner # say hello
@@ -0,0 +1,94 @@
1
+
2
+ module SportDb
3
+ module Import
4
+
5
+
6
+ class Catalog
7
+ def config() Import.config; end
8
+
9
+
10
+ ## todo/check: rename to country_mappings/index - why? why not?
11
+ ## or countries_by_code or countries_by_key
12
+ def countries() @countries ||= build_country_index; end
13
+ def national_teams() @national_teams ||= build_national_team_index; end
14
+ def clubs() @clubs ||= build_club_index; end
15
+ def teams() @teams ||= build_team_index; end
16
+ def leagues() @leagues ||= build_league_index; end
17
+
18
+ def events() @events ||= build_event_index; end
19
+ def seasons() @seasons ||= build_season_index; end
20
+
21
+
22
+ def build_team_index() TeamIndex.new; end
23
+
24
+ def build_country_index ## todo/check: rename to setup_country_index or read_country_index - why? why not?
25
+ CountryIndex.new( Fifa.countries )
26
+ end
27
+
28
+ def build_national_team_index
29
+ ## auto-build national teams from Fifa.countries for now
30
+ teams = []
31
+ Fifa.countries.each do |country|
32
+ team = NationalTeam.new( key: country.code.downcase, ## note: use country code (fifa)
33
+ name: country.name,
34
+ code: country.code, ## note: use country code (fifa)
35
+ alt_names: country.alt_names )
36
+ team.country = country
37
+
38
+ teams << team
39
+ end
40
+
41
+ NationalTeamIndex.new( teams )
42
+ end
43
+
44
+ def build_club_index
45
+ ## unify team names; team (builtin/known/shared) name mappings
46
+ ## cleanup team names - use local ("native") name with umlaut etc.
47
+ ## todo/fix: add to teamreader
48
+ ## check that name and alt_names for a club are all unique (not duplicates)
49
+
50
+ clubs = if config.clubs_dir ## check if clubs_dir is defined / set (otherwise it's nil)
51
+ ClubIndex.build( config.clubs_dir )
52
+ else ## no clubs_dir set - try using builtin from footballdb-clubs
53
+ FootballDb::Import::build_club_index
54
+ end
55
+
56
+ if clubs.errors?
57
+ puts ""
58
+ puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
59
+ puts " #{clubs.errors.size} errors:"
60
+ pp clubs.errors
61
+ ## exit 1
62
+ end
63
+
64
+ clubs
65
+ end # method build_club_index
66
+
67
+
68
+ def build_league_index
69
+ leagues = if config.leagues_dir ## check if clubs_dir is defined / set (otherwise it's nil)
70
+ LeagueIndex.build( config.leagues_dir )
71
+ else ## no leagues_dir set - try using builtin from footballdb-leagues
72
+ FootballDb::Import.build_league_index
73
+ end
74
+ end
75
+
76
+
77
+ def build_event_index
78
+ if config.leagues_dir ## (re)use leagues dir for now - add separate seasons_dir - why? why not?
79
+ EventIndex.build( config.leagues_dir )
80
+ else
81
+ puts "!! WARN - no leagues_dir set; for now buit-in events in catalog - fix!!!!"
82
+ EventIndex.new ## return empty event index
83
+ end
84
+ end
85
+
86
+ def build_season_index
87
+ # note: for now always (re)use the events from the event (info) index
88
+ SeasonIndex.new( events )
89
+ end
90
+
91
+ end # class Catalog
92
+
93
+ end # module Import
94
+ end # module SportDb
@@ -1,13 +1,12 @@
1
1
  # encoding: utf-8
2
2
 
3
3
 
4
-
5
4
  module SportDb
6
- module Boot ## note: use a different module than Config to avoid confusion with Configuration/config etc.!!!!
7
- ## maybe rename later gem itself to sportdb-boot - why? why not?
5
+ module Module
6
+ module Catalogs
8
7
 
9
8
  MAJOR = 1 ## todo: namespace inside version or something - why? why not??
10
- MINOR = 0
9
+ MINOR = 1
11
10
  PATCH = 1
12
11
  VERSION = [MAJOR,MINOR,PATCH].join('.')
13
12
 
@@ -15,6 +14,7 @@ module Boot ## note: use a different module than Config to avoid confusion
15
14
  VERSION
16
15
  end
17
16
 
17
+ ## todo/fix: rename to sportdb-catalogs - why? why not?
18
18
  def self.banner
19
19
  "sportdb-config/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
20
20
  end
@@ -23,5 +23,6 @@ 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
- end # module Boot
26
+ end # module Catalogs
27
+ end # module Module
27
28
  end # module SportDb
@@ -18,12 +18,12 @@ class TestCountries < MiniTest::Test
18
18
  eng = COUNTRIES[:eng]
19
19
  assert_equal 'eng', eng.key
20
20
  assert_equal 'England', eng.name
21
- assert_equal 'ENG', eng.fifa
21
+ assert_equal 'ENG', eng.code
22
22
 
23
23
  at = COUNTRIES[:at]
24
24
  assert_equal 'at', at.key
25
25
  assert_equal 'Austria', at.name
26
- assert_equal 'AUT', at.fifa
26
+ assert_equal 'AUT', at.code
27
27
 
28
28
  assert at == COUNTRIES['AT']
29
29
  assert at == COUNTRIES['at']
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+
3
+ ###
4
+ # to run use
5
+ # ruby -I ./lib -I ./test test/test_national_teams.rb
6
+
7
+
8
+ require 'helper'
9
+
10
+ class TestNationalTeams < MiniTest::Test
11
+
12
+ NATIONAL_TEAMS = SportDb::Import.catalog.national_teams
13
+
14
+
15
+ def test_find
16
+ t = NATIONAL_TEAMS.find( 'AUT' )
17
+ assert_equal 'Austria', t.name
18
+ assert_equal 'aut', t.key
19
+ assert_equal 'AUT', t.code
20
+
21
+
22
+ t = NATIONAL_TEAMS.find( 'England' )
23
+ assert_equal 'England', t.name
24
+ assert_equal 'eng', t.key
25
+ assert_equal 'ENG', t.code
26
+
27
+ ## note: all dots (.) get always removed
28
+ t = NATIONAL_TEAMS.find( '...e.n.g.l.a.n.d...' )
29
+ assert_equal 'England', t.name
30
+ assert_equal 'eng', t.key
31
+ assert_equal 'ENG', t.code
32
+
33
+ ## note: all spaces and dashes (-) get always removed
34
+ t = NATIONAL_TEAMS.find( '--- e n g l a n d ---' )
35
+ assert_equal 'England', t.name
36
+ assert_equal 'eng', t.key
37
+ assert_equal 'ENG', t.code
38
+ end
39
+
40
+ end # class TestNationalTeams
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: 1.0.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-11 00:00:00.000000000 Z
11
+ date: 2020-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sportdb-formats
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.1
19
+ version: 1.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.1
26
+ version: 1.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: fifa
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2020.5.10
33
+ version: 2020.5.18
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 2020.5.10
40
+ version: 2020.5.18
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: footballdb-clubs
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 2020.5.10
47
+ version: 2020.6.16
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 2020.5.10
54
+ version: 2020.6.16
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: footballdb-leagues
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 2020.5.10
61
+ version: 2020.6.16
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 2020.5.10
68
+ version: 2020.6.16
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rdoc
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -110,6 +110,7 @@ files:
110
110
  - README.md
111
111
  - Rakefile
112
112
  - lib/sportdb/config.rb
113
+ - lib/sportdb/config/catalog.rb
113
114
  - lib/sportdb/config/config.rb
114
115
  - lib/sportdb/config/version.rb
115
116
  - lib/sportdb/config/wiki_index.rb
@@ -117,6 +118,7 @@ files:
117
118
  - test/test_clubs.rb
118
119
  - test/test_countries.rb
119
120
  - test/test_leagues.rb
121
+ - test/test_national_teams.rb
120
122
  - test/test_wiki_index.rb
121
123
  homepage: https://github.com/sportdb/sport.db
122
124
  licenses: