sportdb-config 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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