sportdb-config 0.8.1 → 0.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ab3af5caf98d2b479ec761e631a11fd7cea1fbf2
4
- data.tar.gz: 8b9d6b1124ee2ed1736461c570ccc0c413e7fc5c
3
+ metadata.gz: 852d0106724079d3a82da39eee4c35c2c8223444
4
+ data.tar.gz: 829732d0ed84b32ce414e2eda2853c124363412c
5
5
  SHA512:
6
- metadata.gz: c530137fc8d0998e51d87894809cb181a1771f980294a8f443c06daeeba7fc7db69fe66bcc769c60a8f4e635f3aee5485034c9bd1e79330f4f72dd82e3894fe2
7
- data.tar.gz: 7df6258cf6cb2a8b48701786fe67c1f336e1af59a636207cd98bef3762c67a04812bcdb0fa3dfff92b84c6acdb022249e4076ed196fb5bd89513a7906195fb04
6
+ metadata.gz: ea39a32a35b38ada3df0f0189683c1d18817c9e9e1e02b948dd3619b0511dcea53d4c391f2a28fb43ce10df09e29b88d8e602bf2825c3441d7cd42a1bb9eb328
7
+ data.tar.gz: 85fe045bcadba1577dad41c1732f564479f88795e8bc3d3335d4c57598167e57163fab65bfa4b3c78eed3559c9a451947df2f97fb4119166367221deb1c53bee
data/Manifest.txt CHANGED
@@ -5,13 +5,10 @@ README.md
5
5
  Rakefile
6
6
  lib/sportdb/config.rb
7
7
  lib/sportdb/config/config.rb
8
- lib/sportdb/config/season_utils.rb
9
8
  lib/sportdb/config/version.rb
10
9
  lib/sportdb/config/wiki_index.rb
11
10
  test/helper.rb
12
11
  test/test_clubs.rb
13
12
  test/test_countries.rb
14
- test/test_find_datafiles.rb
15
13
  test/test_leagues.rb
16
- test/test_season_utils.rb
17
14
  test/test_wiki_index.rb
data/Rakefile CHANGED
@@ -20,9 +20,9 @@ Hoe.spec 'sportdb-config' do
20
20
  self.licenses = ['Public Domain']
21
21
 
22
22
  self.extra_deps = [
23
- ['sportdb-countries', '>= 0.4.0'],
24
- ['sportdb-clubs', '>= 0.2.2'],
25
- ['sportdb-leagues', '>= 0.1.1'],
23
+ ['sportdb-countries', '>= 0.5.1'],
24
+ ['sportdb-clubs', '>= 0.2.3'],
25
+ ['sportdb-leagues', '>= 0.2.1'],
26
26
  ## dataset libs / gems
27
27
  ['fifa', '>= 1.2.1'], ## for (builtin/default) countries
28
28
  ['footballdb-clubs', '>= 1.0.0'], ## for (builtin/default) clubs
@@ -15,8 +15,6 @@ require 'footballdb/leagues'
15
15
  ###
16
16
  # our own code
17
17
  require 'sportdb/config/version' # let version always go first
18
-
19
- require 'sportdb/config/season_utils'
20
18
  require 'sportdb/config/wiki_index'
21
19
  require 'sportdb/config/config'
22
20
 
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
 
3
+
3
4
  module SportDb
4
5
  module Import
5
6
 
@@ -8,9 +9,9 @@ class ClubIndex
8
9
 
9
10
  def self.build( path )
10
11
  recs = []
11
- datafiles = Configuration.find_datafiles_clubs( path )
12
+ datafiles = Datafile.find_clubs( path )
12
13
  datafiles.each do |datafile|
13
- recs += ClubReader.read( datafile )
14
+ recs += Club.read( datafile )
14
15
  end
15
16
  recs
16
17
 
@@ -19,7 +20,7 @@ class ClubIndex
19
20
 
20
21
  ## add wiki(pedia) anchored links
21
22
  recs = []
22
- datafiles = Configuration.find_datafiles_clubs_wiki( path )
23
+ datafiles = Datafile.find_clubs_wiki( path )
23
24
  datafiles.each do |datafile|
24
25
  recs += WikiReader.read( datafile )
25
26
  end
@@ -35,9 +36,9 @@ class LeagueIndex
35
36
 
36
37
  def self.build( path )
37
38
  recs = []
38
- datafiles = Configuration.find_datafiles_leagues( path )
39
+ datafiles = Datafile.find_leagues( path )
39
40
  datafiles.each do |datafile|
40
- recs += LeagueReader.read( datafile )
41
+ recs += League.read( datafile )
41
42
  end
42
43
  recs
43
44
 
@@ -87,41 +88,6 @@ class Configuration
87
88
  def leagues_dir() @leagues_dir; end
88
89
 
89
90
 
90
- CLUBS_REGEX = %r{ (?:^|/) # beginning (^) or beginning of path (/)
91
- (?:[a-z]{1,3}\.)? # optional country code/key e.g. eng.clubs.txt
92
- clubs\.txt$
93
- }x
94
-
95
- CLUBS_WIKI_REGEX = %r{ (?:^|/) # beginning (^) or beginning of path (/)
96
- (?:[a-z]{1,3}\.)? # optional country code/key e.g. eng.clubs.wiki.txt
97
- clubs\.wiki\.txt$
98
- }x
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
-
105
-
106
- def self.find_datafiles( path, pattern )
107
- datafiles = [] ## note: [country, path] pairs for now
108
-
109
- ## check all txt files as candidates (MUST include country code for now)
110
- candidates = Dir.glob( "#{path}/**/*.txt" )
111
- pp candidates
112
- candidates.each do |candidate|
113
- datafiles << candidate if pattern.match( candidate )
114
- end
115
-
116
- pp datafiles
117
- datafiles
118
- end
119
-
120
- def self.find_datafiles_clubs( path ) find_datafiles( path, CLUBS_REGEX ); end
121
- def self.find_datafiles_clubs_wiki( path ) find_datafiles( path, CLUBS_WIKI_REGEX ); end
122
-
123
- def self.find_datafiles_leagues( path ) find_datafiles( path, LEAGUES_REGEX ); end
124
-
125
91
 
126
92
  def build_club_index
127
93
  ## unify team names; team (builtin/known/shared) name mappings
@@ -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 = 8
11
- PATCH = 1
10
+ MINOR = 9
11
+ PATCH = 0
12
12
  VERSION = [MAJOR,MINOR,PATCH].join('.')
13
13
 
14
14
  def self.version
@@ -8,7 +8,7 @@ class WikiIndex
8
8
 
9
9
  def self.build( path )
10
10
  recs = []
11
- datafiles = Configuration.find_datafiles_clubs_wiki( path )
11
+ datafiles = Datafile.find_clubs_wiki( path )
12
12
  datafiles.each do |datafile|
13
13
  recs += WikiReader.read( datafile )
14
14
  end
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.8.1
4
+ version: 0.9.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-10-23 00:00:00.000000000 Z
11
+ date: 2019-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sportdb-countries
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.0
19
+ version: 0.5.1
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: 0.4.0
26
+ version: 0.5.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sportdb-clubs
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.2
33
+ version: 0.2.3
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: 0.2.2
40
+ version: 0.2.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sportdb-leagues
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.1
47
+ version: 0.2.1
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: 0.1.1
54
+ version: 0.2.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: fifa
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -139,15 +139,12 @@ files:
139
139
  - Rakefile
140
140
  - lib/sportdb/config.rb
141
141
  - lib/sportdb/config/config.rb
142
- - lib/sportdb/config/season_utils.rb
143
142
  - lib/sportdb/config/version.rb
144
143
  - lib/sportdb/config/wiki_index.rb
145
144
  - test/helper.rb
146
145
  - test/test_clubs.rb
147
146
  - test/test_countries.rb
148
- - test/test_find_datafiles.rb
149
147
  - test/test_leagues.rb
150
- - test/test_season_utils.rb
151
148
  - test/test_wiki_index.rb
152
149
  homepage: https://github.com/sportdb/sport.db
153
150
  licenses:
@@ -1,116 +0,0 @@
1
- # encoding: utf-8
2
-
3
-
4
- module SeasonHelper ## use Helpers why? why not?
5
- def prev( season )
6
- ## todo: add 1964-1965 format too!!!
7
- if season =~ /^(\d{4})-(\d{2})$/ ## season format is 1964-65
8
- fst = $1.to_i - 1
9
- snd = (100 + $2.to_i - 1) % 100 ## note: add 100 to turn 00 => 99
10
- "%4d-%02d" % [fst,snd]
11
- elsif season =~ /^(\d{4})$/
12
- fst = $1.to_i - 1
13
- "%4d" % [fst]
14
- else
15
- puts "*** !!!! wrong season format >>#{season}<<; exit; sorry"
16
- exit 1
17
- end
18
- end # method prev
19
-
20
-
21
- def key( basename )
22
- if basename =~ /^(\d{4})[\-\/](\d{4})$/ ## e.g. 2011-2012 or 2011/2012 => 2011/12
23
- "%4d/%02d" % [$1.to_i, $2.to_i % 100]
24
- elsif basename =~ /^(\d{4})[\-\/](\d{2})$/ ## e.g. 2011-12 or 2011/12 => 2011/12
25
- "#{$1}/#{$2}"
26
- elsif basename =~ /^(\d{4})$/
27
- $1
28
- else
29
- puts "*** !!!! wrong season format >>#{basename}<<; exit; sorry"
30
- exit 1
31
- end
32
- end # method key
33
-
34
-
35
- def directory( season, format: nil )
36
- ## todo: find better names for formats - why? why not?:
37
- ## long | archive | decade(?) => 1980s/1988-89, 2010s/2017-18, ...
38
- ## short | std(?) => 1988-89, 2017-18, ...
39
-
40
- ## convert season name to "standard" season name for directory
41
-
42
- ## todo/fix: move to parse / validate season (for (re)use)!!!! - why? why not?
43
- if season =~ /^(\d{4})[\-\/](\d{4})$/ ## e.g. 2011-2012 or 2011/2012 => 2011-12
44
- years = [$1.to_i, $2.to_i]
45
- elsif season =~ /^(\d{4})[\-\/](\d{2})$/ ## e.g. 2011-12 or 2011/12 => 2011-12
46
- years = [$1.to_i, $1.to_i+1]
47
- ## note: check that season end year is (always) season start year + 1
48
- if ($1.to_i+1) % 100 != $2.to_i
49
- puts "*** !!!! wrong season format >>#{season}<<; season end year MUST (always) equal season start year + 1; exit; sorry"
50
- exit 1
51
- end
52
- elsif season =~ /^(\d{4})$/
53
- years = [$1.to_i]
54
- else
55
- puts "*** !!!! wrong season format >>#{season}<<; exit; sorry"
56
- exit 1
57
- end
58
-
59
-
60
- if ['l', 'long', 'archive' ].include?( format.to_s ) ## note: allow passing in of symbol to e.g. 'long' or :long
61
- if years.size == 2
62
- "%3d0s/%4d-%02d" % [years[0] / 10, years[0], years[1] % 100] ## e.g. 2000s/2001-02
63
- else ## assume size 1 (single year season)
64
- "%3d0s/%4d" % [years[0] / 10, years[0]]
65
- end
66
- else ## default 'short' format / fallback
67
- if years.size == 2
68
- "%4d-%02d" % [years[0], years[1] % 100] ## e.g. 2001-02
69
- else ## assume size 1 (single year season)
70
- "%4d" % years[0]
71
- end
72
- end
73
- end # method directory
74
-
75
-
76
-
77
- def start_year( season ) ## get start year
78
- ## convert season name to "standard" season name for directory
79
-
80
- ## todo/check: just return year from first for chars - keep it simple - why? why not?
81
- if season =~ /^(\d{4})[\-\/](\d{4})$/ ## e.g. 2011-2010 or 2011/2011 => 2011-10
82
- $1
83
- elsif season =~ /^(\d{4})[\-\/](\d{2})$/
84
- $1
85
- elsif season =~ /^(\d{4})$/
86
- $1
87
- else
88
- puts "*** !!!! wrong season format >>#{season}<<; exit; sorry"
89
- exit 1
90
- end
91
- end
92
-
93
- def end_year( season ) ## get end year
94
- ## convert season name to "standard" season name for directory
95
- if season =~ /^(\d{4})[\-\/](\d{4})$/ ## e.g. 2011-2010 or 2011/2011 => 2011-10
96
- $2
97
- elsif season =~ /^(\d{4})[\-\/](\d{2})$/
98
- ## note: assume second year is always +1
99
- ## todo/fix: add assert/check - why? why not?
100
- ## eg. 1999-00 => 2000 or 1899-00 => 1900
101
- ($1.to_i+1).to_s
102
- elsif season =~ /^(\d{4})$/
103
- $1
104
- else
105
- puts "*** !!!! wrong season format >>#{season}<<; exit; sorry"
106
- exit 1
107
- end
108
- end
109
- end # module SeasonHelper
110
-
111
-
112
- module SeasonUtils
113
- extend SeasonHelper
114
- ## lets you use SeasonHelper as "globals" eg.
115
- ## SeasonUtils.prev( season ) etc.
116
- end # SeasonUtils
@@ -1,57 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_find_datafiles.rb
6
-
7
-
8
- require 'helper'
9
-
10
- class TestFindDatafiles < MiniTest::Test
11
-
12
- def match_clubs( txt ) SportDb::Import::Configuration::CLUBS_REGEX.match( txt ); end
13
- def match_clubs_wiki( txt ) SportDb::Import::Configuration::CLUBS_WIKI_REGEX.match( txt ); end
14
-
15
- def match_leagues( txt ) SportDb::Import::Configuration::LEAGUES_REGEX.match( txt ); end
16
-
17
- def test_find_clubs
18
- assert match_clubs( 'de.clubs.txt' )
19
- assert match_clubs( 'deutschland/de.clubs.txt' )
20
- assert match_clubs( 'europe/de-deutschland/clubs.txt' )
21
- assert match_clubs( 'de-deutschland/clubs.txt' )
22
- assert match_clubs( 'clubs.txt' )
23
- assert match_clubs( 'deutschland/clubs.txt' )
24
-
25
- assert !match_clubs( 'de.clubs.wiki.txt' )
26
- assert !match_clubs( 'deutschland/de.clubs.wiki.txt' )
27
- assert !match_clubs( 'europe/de-deutschland/clubs.wiki.txt' )
28
- assert !match_clubs( 'de-deutschland/clubs.wiki.txt' )
29
- assert !match_clubs( 'clubs.wiki.txt' )
30
- assert !match_clubs( 'deutschland/clubs.wiki.txt' )
31
- end
32
-
33
- def test_find_clubs_wiki
34
- assert !match_clubs_wiki( 'de.clubs.txt' )
35
- assert !match_clubs_wiki( 'deutschland/de.clubs.txt' )
36
- assert !match_clubs_wiki( 'europe/de-deutschland/clubs.txt' )
37
- assert !match_clubs_wiki( 'de-deutschland/clubs.txt' )
38
- assert !match_clubs_wiki( 'clubs.txt' )
39
- assert !match_clubs_wiki( 'deutschland/clubs.txt' )
40
-
41
- assert match_clubs_wiki( 'de.clubs.wiki.txt' )
42
- assert match_clubs_wiki( 'deutschland/de.clubs.wiki.txt' )
43
- assert match_clubs_wiki( 'europe/de-deutschland/clubs.wiki.txt' )
44
- assert match_clubs_wiki( 'de-deutschland/clubs.wiki.txt' )
45
- assert match_clubs_wiki( 'clubs.wiki.txt' )
46
- assert match_clubs_wiki( 'deutschland/clubs.wiki.txt' )
47
- end
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
@@ -1,29 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_season_utils.rb
6
-
7
-
8
- require 'helper'
9
-
10
- class TestSeasonUtils < MiniTest::Test
11
-
12
- def test_directory
13
- assert_equal '2010-11', SeasonUtils.directory( '2010-11' )
14
- assert_equal '2010-11', SeasonUtils.directory( '2010-2011' )
15
- assert_equal '2010-11', SeasonUtils.directory( '2010/11' )
16
- assert_equal '2010-11', SeasonUtils.directory( '2010/2011' )
17
- assert_equal '2010', SeasonUtils.directory( '2010' )
18
-
19
- assert_equal '2010s/2010-11', SeasonUtils.directory( '2010-11', format: 'long' )
20
- assert_equal '2010s/2010-11', SeasonUtils.directory( '2010-2011', format: 'long' )
21
- assert_equal '2010s/2010', SeasonUtils.directory( '2010', format: 'long' )
22
-
23
- assert_equal '1999-00', SeasonUtils.directory( '1999-00' )
24
- assert_equal '1999-00', SeasonUtils.directory( '1999-2000' )
25
- assert_equal '1990s/1999-00', SeasonUtils.directory( '1999-00', format: 'long' )
26
- assert_equal '1990s/1999-00', SeasonUtils.directory( '1999-2000', format: 'long' )
27
- end # method test_diretory
28
-
29
- end # class TestSeasonlUtils