sportdb-writers 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/Manifest.txt +8 -9
- data/Rakefile +2 -4
- data/bin/fbgen +183 -0
- data/bin/fbtxt +52 -0
- data/config/leagues_america.csv +6 -0
- data/config/leagues_europe.csv +85 -0
- data/config/leagues_world.csv +4 -0
- data/config/openfootball.csv +52 -0
- data/lib/sportdb/writers/github.rb +26 -138
- data/lib/sportdb/writers/github_config.rb +97 -0
- data/lib/sportdb/writers/league_config.rb +83 -0
- data/lib/sportdb/writers/txt_writer.rb +8 -1
- data/lib/sportdb/writers/version.rb +4 -5
- data/lib/sportdb/writers/write.rb +11 -8
- data/lib/sportdb/writers.rb +51 -21
- metadata +15 -28
- data/lib/sportdb/leagues/leagues_at.rb +0 -35
- data/lib/sportdb/leagues/leagues_de.rb +0 -21
- data/lib/sportdb/leagues/leagues_eng.rb +0 -58
- data/lib/sportdb/leagues/leagues_es.rb +0 -15
- data/lib/sportdb/leagues/leagues_europe.rb +0 -178
- data/lib/sportdb/leagues/leagues_it.rb +0 -16
- data/lib/sportdb/leagues/leagues_mx.rb +0 -23
- data/lib/sportdb/leagues/leagues_south_america.rb +0 -17
- data/lib/sportdb/leagues/leagues_world.rb +0 -14
@@ -0,0 +1,97 @@
|
|
1
|
+
|
2
|
+
module SportDb
|
3
|
+
class GitHubConfig
|
4
|
+
|
5
|
+
## map leagues to repo+path
|
6
|
+
## e.g. fr.1 => europe/france
|
7
|
+
## eng..1 => england
|
8
|
+
##
|
9
|
+
## for other than openfootball (default)
|
10
|
+
## use @
|
11
|
+
## e.g. myorg@austria
|
12
|
+
## austria@myorg ??
|
13
|
+
##
|
14
|
+
## myorg@europe/france
|
15
|
+
## europe/france@myorg
|
16
|
+
|
17
|
+
|
18
|
+
def self.read( path )
|
19
|
+
recs = read_csv( path )
|
20
|
+
new( recs )
|
21
|
+
end
|
22
|
+
|
23
|
+
def initialize( recs=nil )
|
24
|
+
@table = {}
|
25
|
+
add( recs ) if recs
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def add( recs )
|
30
|
+
recs.each do |rec|
|
31
|
+
path = rec['path'] ## use pathspec - why? why not?
|
32
|
+
## or repospec or such
|
33
|
+
|
34
|
+
## auto-expand to openfootball as default org if no @ specified
|
35
|
+
owner, path = if path.index( '@')
|
36
|
+
path.split( '@', 2 )
|
37
|
+
else
|
38
|
+
['openfootball', path ]
|
39
|
+
end
|
40
|
+
name, path = path.split( '/', 2 )
|
41
|
+
|
42
|
+
|
43
|
+
## openfootball@europe/france
|
44
|
+
## =>
|
45
|
+
## owner: openfootball
|
46
|
+
## name: europe
|
47
|
+
## path: france
|
48
|
+
##
|
49
|
+
## openfootball@austria
|
50
|
+
## =>
|
51
|
+
## owner: openfootball
|
52
|
+
## name: austria
|
53
|
+
## path: nil
|
54
|
+
@table[ rec['key'] ] = { 'owner' => owner, ## (required)
|
55
|
+
'name' => name, ## (required)
|
56
|
+
'path' => path ## extra/inner/inside/local path (optional)
|
57
|
+
}
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
##
|
63
|
+
## todo/fix:
|
64
|
+
## make key lookup more flexible
|
65
|
+
## auto-add more variants!!!
|
66
|
+
## e.g. at.1 AT1, AT or such
|
67
|
+
##
|
68
|
+
|
69
|
+
## find (full) record by key
|
70
|
+
def find( key )
|
71
|
+
key = key.to_s.downcase
|
72
|
+
|
73
|
+
## first check for 1:1 match
|
74
|
+
rec = @table[key]
|
75
|
+
if rec.nil?
|
76
|
+
## try match by (country / first) code
|
77
|
+
## split by .
|
78
|
+
key, _ = key.split( '.' )
|
79
|
+
rec = @table[key]
|
80
|
+
end
|
81
|
+
|
82
|
+
rec
|
83
|
+
end
|
84
|
+
alias_method :[], :find ## keep alias - why? why not?
|
85
|
+
|
86
|
+
|
87
|
+
def find_repo( key )
|
88
|
+
rec = _find( key )
|
89
|
+
|
90
|
+
rec ? "#{rec['owner']}/#{rec['name']}" : nil
|
91
|
+
end
|
92
|
+
|
93
|
+
end # class GitHubConfig
|
94
|
+
end # module SportDb
|
95
|
+
|
96
|
+
|
97
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
|
2
|
+
module SportDb
|
3
|
+
class LeagueConfig
|
4
|
+
|
5
|
+
def self.read( path )
|
6
|
+
recs = read_csv( path )
|
7
|
+
new( recs )
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize( recs=nil )
|
11
|
+
@table = {}
|
12
|
+
add( recs ) if recs
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
class LeagueItem
|
17
|
+
def initialize
|
18
|
+
@recs = []
|
19
|
+
end
|
20
|
+
def add( rec ) @recs << rec; end
|
21
|
+
alias_method :<<, :add
|
22
|
+
|
23
|
+
def find_by_season( season )
|
24
|
+
@recs.each do |rec|
|
25
|
+
start_season = rec['start_season']
|
26
|
+
end_season = rec['end_season']
|
27
|
+
return rec if (start_season.nil? || start_season <= season) &&
|
28
|
+
(end_season.nil? || end_season >= season)
|
29
|
+
end
|
30
|
+
nil
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def name_by_season( season )
|
35
|
+
rec = find_by_season( season )
|
36
|
+
rec ? rec['name'] : nil
|
37
|
+
end
|
38
|
+
|
39
|
+
def basename_by_season( season )
|
40
|
+
rec = find_by_season( season )
|
41
|
+
rec ? rec['basename'] : nil
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
def [](key)
|
46
|
+
## short cut - if only one or zero rec
|
47
|
+
## return directly
|
48
|
+
if @recs.empty?
|
49
|
+
nil
|
50
|
+
elsif @recs.size == 1 &&
|
51
|
+
@recs[0]['start_season'].nil? &&
|
52
|
+
@recs[0]['end_season'].nil?
|
53
|
+
@recs[0][key.to_s]
|
54
|
+
else ### return proc that requires season arg
|
55
|
+
case key.to_sym
|
56
|
+
when :name then method(:name_by_season).to_proc
|
57
|
+
when :basename then method(:basename_by_season).to_proc
|
58
|
+
else
|
59
|
+
nil ## return nil - why? why not?
|
60
|
+
## raise ArgumentError, "invalid key #{key}; use :name or :basename"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def add( recs )
|
67
|
+
recs.each do |rec|
|
68
|
+
@table[ rec['key'] ] ||= LeagueItem.new
|
69
|
+
|
70
|
+
## note: auto-change seasons to season object or nil
|
71
|
+
@table[ rec['key'] ] << { 'name' => rec['name'],
|
72
|
+
'basename' => rec['basename'],
|
73
|
+
'start_season' => rec['start_season'].empty? ? nil : Season.parse( rec['start_season'] ),
|
74
|
+
'end_season' => rec['end_season'].empty? ? nil : Season.parse( rec['end_season'] ),
|
75
|
+
}
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
def [](key) @table[ key.to_s.downcase ]; end
|
81
|
+
|
82
|
+
end # class LeagueConfig
|
83
|
+
end # module SportDb
|
@@ -46,7 +46,14 @@ def self.build( matches, rounds: true )
|
|
46
46
|
buf << "#{round} #{match.round}"
|
47
47
|
else ## use as is from match
|
48
48
|
## note: for now assume english names
|
49
|
-
|
49
|
+
if match.round.nil?
|
50
|
+
## warn
|
51
|
+
puts "!! ERROR - match with round nil?"
|
52
|
+
pp match
|
53
|
+
exit 1
|
54
|
+
end
|
55
|
+
|
56
|
+
buf << (round_translations[match.round] || match.round)
|
50
57
|
end
|
51
58
|
buf << "\n"
|
52
59
|
end
|
@@ -1,11 +1,10 @@
|
|
1
1
|
|
2
2
|
module SportDb
|
3
|
-
|
3
|
+
module Module
|
4
4
|
module Writers
|
5
|
-
|
6
5
|
MAJOR = 0 ## todo: namespace inside version or something - why? why not??
|
7
6
|
MINOR = 1
|
8
|
-
PATCH =
|
7
|
+
PATCH = 2
|
9
8
|
VERSION = [MAJOR,MINOR,PATCH].join('.')
|
10
9
|
|
11
10
|
def self.version
|
@@ -21,5 +20,5 @@ module SportDb
|
|
21
20
|
end
|
22
21
|
|
23
22
|
end # module Writers
|
24
|
-
|
25
|
-
|
23
|
+
end # module Module
|
24
|
+
end # module SportDb
|
@@ -53,7 +53,7 @@ def self.write( league:, season:,
|
|
53
53
|
source:,
|
54
54
|
extra: nil,
|
55
55
|
split: false,
|
56
|
-
normalize: false,
|
56
|
+
normalize: false,
|
57
57
|
rounds: true )
|
58
58
|
season = Season( season ) ## normalize season
|
59
59
|
|
@@ -71,7 +71,7 @@ def self.write( league:, season:,
|
|
71
71
|
exit 1
|
72
72
|
end
|
73
73
|
source_info = { path: source } ## wrap in "plain" source dir in source info
|
74
|
-
|
74
|
+
|
75
75
|
source_path = source_info[:path]
|
76
76
|
|
77
77
|
## format lets you specify directory layout
|
@@ -106,14 +106,14 @@ def self.write( league:, season:,
|
|
106
106
|
if normalize.is_a?(Proc)
|
107
107
|
matches = normalize.call( matches, league: league,
|
108
108
|
season: season )
|
109
|
-
else
|
109
|
+
else
|
110
110
|
puts "!! ERROR - normalize; expected proc got #{normalize.inspect}"
|
111
111
|
exit 1
|
112
|
-
end
|
112
|
+
end
|
113
113
|
end
|
114
|
-
|
115
114
|
|
116
|
-
|
115
|
+
|
116
|
+
|
117
117
|
league_name = league_info[ :name ] # e.g. Brasileiro Série A
|
118
118
|
basename = league_info[ :basename] #.e.g 1-seriea
|
119
119
|
|
@@ -122,7 +122,10 @@ def self.write( league:, season:,
|
|
122
122
|
|
123
123
|
## note - repo_path moved!!!
|
124
124
|
## repo_path = league_info[ :path ] # e.g. brazil or world/europe/portugal etc.
|
125
|
-
|
125
|
+
repo = SportDb::GitHubSync::REPOS[ league ]
|
126
|
+
repo_path = "#{repo['owner']}/#{repo['name']}"
|
127
|
+
repo_path << "/#{repo['path']}" if repo['path'] ## note: do NOT forget to add optional extra path!!!
|
128
|
+
|
126
129
|
|
127
130
|
|
128
131
|
season_path = String.new ## note: allow extra path for output!!!! e.g. archive/2000s etc.
|
@@ -175,7 +178,7 @@ def self.write( league:, season:,
|
|
175
178
|
)
|
176
179
|
|
177
180
|
## note: might be empty!!! if no matches skip (do NOT write)
|
178
|
-
write_text( "#{config.out_dir}/#{repo_path}/#{season_path}/#{stage_basename}.txt",
|
181
|
+
write_text( "#{config.out_dir}/#{repo_path}/#{season_path}/#{stage_basename}.txt",
|
179
182
|
buf ) unless buf.empty?
|
180
183
|
end
|
181
184
|
else ## no stages - assume "regular" plain vanilla season
|
data/lib/sportdb/writers.rb
CHANGED
@@ -1,14 +1,6 @@
|
|
1
|
-
## just use sportdb/catalogs ?! - why? why not?
|
2
|
-
# require 'sportdb/importers' # -- requires db support
|
3
|
-
# require 'sportdb/readers' # -- requires db support
|
4
|
-
#
|
5
|
-
# note - for now only requires sportdb/formats !!!
|
6
|
-
# normalize moved out as a proc!!!
|
7
|
-
require 'sportdb/formats'
|
8
1
|
|
2
|
+
require 'sportdb/quick'
|
9
3
|
|
10
|
-
## todo/fix - make sure upstream cocos is included/required
|
11
|
-
require 'cocos'
|
12
4
|
|
13
5
|
|
14
6
|
module Writer
|
@@ -37,29 +29,67 @@ require_relative 'writers/goals'
|
|
37
29
|
require_relative 'writers/write'
|
38
30
|
|
39
31
|
|
32
|
+
## setup leagues (info) table
|
33
|
+
require_relative 'writers/league_config'
|
34
|
+
|
35
|
+
module Writer
|
36
|
+
LEAGUES = SportDb::LeagueConfig.new
|
37
|
+
|
38
|
+
['leagues_europe',
|
39
|
+
'leagues_america',
|
40
|
+
'leagues_world'
|
41
|
+
].each do |name|
|
42
|
+
recs = read_csv( "#{SportDb::Module::Writers.root}/config/#{name}.csv" )
|
43
|
+
LEAGUES.add( recs )
|
44
|
+
end
|
45
|
+
end # module Writer
|
46
|
+
|
47
|
+
|
40
48
|
|
41
49
|
########################
|
42
50
|
# push & pull github scripts
|
43
51
|
require 'gitti' ## note - requires git machinery
|
44
52
|
|
53
|
+
require_relative 'writers/github_config'
|
45
54
|
require_relative 'writers/github' ## github helpers/update machinery
|
46
55
|
|
47
56
|
|
57
|
+
module SportDb
|
58
|
+
class GitHubSync
|
59
|
+
REPOS = GitHubConfig.new
|
60
|
+
recs = read_csv( "#{SportDb::Module::Writers.root}/config/openfootball.csv" )
|
61
|
+
REPOS.add( recs )
|
48
62
|
|
49
|
-
##
|
50
|
-
|
51
|
-
|
63
|
+
## todo/check: find a better name for helper?
|
64
|
+
## note: datasets of format
|
65
|
+
##
|
66
|
+
## DATASETS = [
|
67
|
+
## ['it.1', %w[2020/21 2019/20]],
|
68
|
+
## ['it.2', %w[2019/20]],
|
69
|
+
## ['es.1', %w[2019/20]],
|
70
|
+
## ['es.2', %w[2019/20]],
|
71
|
+
## ]
|
72
|
+
|
73
|
+
def self.find_repos( datasets )
|
74
|
+
repos = []
|
75
|
+
datasets.each do |dataset|
|
76
|
+
league_key = dataset[0]
|
77
|
+
repo = REPOS[ league_key ]
|
78
|
+
## pp repo
|
79
|
+
if repo.nil?
|
80
|
+
puts "!! ERROR - no repo config/path found for league >#{league_key}<; sorry"
|
81
|
+
exit 1
|
82
|
+
end
|
83
|
+
|
84
|
+
repos << "#{repo['owner']}/#{repo['name']}"
|
85
|
+
end
|
86
|
+
|
87
|
+
pp repos
|
88
|
+
repos.uniq ## note: remove duplicates (e.g. europe or world or such)
|
52
89
|
end
|
90
|
+
end # class GitHubSync
|
91
|
+
end # module SportDb
|
53
92
|
|
54
|
-
require_relative 'leagues/leagues_at'
|
55
|
-
require_relative 'leagues/leagues_de'
|
56
|
-
require_relative 'leagues/leagues_eng'
|
57
|
-
require_relative 'leagues/leagues_es'
|
58
|
-
require_relative 'leagues/leagues_europe'
|
59
|
-
require_relative 'leagues/leagues_it'
|
60
|
-
require_relative 'leagues/leagues_mx'
|
61
|
-
require_relative 'leagues/leagues_south_america'
|
62
|
-
require_relative 'leagues/leagues_world'
|
63
93
|
|
64
94
|
|
65
95
|
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sportdb-writers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07
|
11
|
+
date: 2024-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: sportdb-
|
14
|
+
name: sportdb-quick
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: cocos
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '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'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: rdoc
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,7 +75,9 @@ dependencies:
|
|
89
75
|
description: sportdb-writers - sport.db writers for match schedules and results, and
|
90
76
|
more
|
91
77
|
email: gerald.bauer@gmail.com
|
92
|
-
executables:
|
78
|
+
executables:
|
79
|
+
- fbgen
|
80
|
+
- fbtxt
|
93
81
|
extensions: []
|
94
82
|
extra_rdoc_files:
|
95
83
|
- CHANGELOG.md
|
@@ -100,18 +88,17 @@ files:
|
|
100
88
|
- Manifest.txt
|
101
89
|
- README.md
|
102
90
|
- Rakefile
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
106
|
-
-
|
107
|
-
-
|
108
|
-
-
|
109
|
-
- lib/sportdb/leagues/leagues_mx.rb
|
110
|
-
- lib/sportdb/leagues/leagues_south_america.rb
|
111
|
-
- lib/sportdb/leagues/leagues_world.rb
|
91
|
+
- bin/fbgen
|
92
|
+
- bin/fbtxt
|
93
|
+
- config/leagues_america.csv
|
94
|
+
- config/leagues_europe.csv
|
95
|
+
- config/leagues_world.csv
|
96
|
+
- config/openfootball.csv
|
112
97
|
- lib/sportdb/writers.rb
|
113
98
|
- lib/sportdb/writers/github.rb
|
99
|
+
- lib/sportdb/writers/github_config.rb
|
114
100
|
- lib/sportdb/writers/goals.rb
|
101
|
+
- lib/sportdb/writers/league_config.rb
|
115
102
|
- lib/sportdb/writers/txt_writer.rb
|
116
103
|
- lib/sportdb/writers/version.rb
|
117
104
|
- lib/sportdb/writers/write.rb
|
@@ -129,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
129
116
|
requirements:
|
130
117
|
- - ">="
|
131
118
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
119
|
+
version: 3.1.0
|
133
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
121
|
requirements:
|
135
122
|
- - ">="
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Writer
|
2
|
-
|
3
|
-
########################
|
4
|
-
# Austria
|
5
|
-
|
6
|
-
LEAGUES.merge!(
|
7
|
-
'at.1' => { name: 'Österr. Bundesliga',
|
8
|
-
basename: '1-bundesliga',
|
9
|
-
stages: ->(season) {
|
10
|
-
if season.start_year >= 2018
|
11
|
-
[['Grunddurchgang'],
|
12
|
-
['Finaldurchgang - Meister',
|
13
|
-
'Finaldurchgang - Qualifikation',
|
14
|
-
'Europa League Play-off']]
|
15
|
-
else
|
16
|
-
nil
|
17
|
-
end
|
18
|
-
},
|
19
|
-
},
|
20
|
-
'at.2' => { name: ->(season) { season.start_year >= 2018 ?
|
21
|
-
'Österr. 2. Liga' :
|
22
|
-
'Österr. Erste Liga' },
|
23
|
-
basename: ->(season) { season.start_year >= 2018 ?
|
24
|
-
'2-liga2' :
|
25
|
-
'2-liga1' },
|
26
|
-
},
|
27
|
-
'at.3.o' => { name: 'Österr. Regionalliga Ost',
|
28
|
-
basename: '3-regionalliga-ost',
|
29
|
-
},
|
30
|
-
'at.cup' => { name: 'ÖFB Cup',
|
31
|
-
basename: 'cup',
|
32
|
-
}
|
33
|
-
)
|
34
|
-
|
35
|
-
end # module Writer
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Writer
|
2
|
-
|
3
|
-
############################
|
4
|
-
# Germany / Deutschland
|
5
|
-
|
6
|
-
LEAGUES.merge!(
|
7
|
-
'de.1' => { name: 'Deutsche Bundesliga',
|
8
|
-
basename: '1-bundesliga',
|
9
|
-
},
|
10
|
-
'de.2' => { name: 'Deutsche 2. Bundesliga',
|
11
|
-
basename: '2-bundesliga2',
|
12
|
-
},
|
13
|
-
'de.3' => { name: 'Deutsche 3. Liga',
|
14
|
-
basename: '3-liga3',
|
15
|
-
},
|
16
|
-
'de.cup' => { name: 'DFB Pokal',
|
17
|
-
basename: 'cup',
|
18
|
-
}
|
19
|
-
)
|
20
|
-
|
21
|
-
end # module Writer
|
@@ -1,58 +0,0 @@
|
|
1
|
-
module Writer
|
2
|
-
|
3
|
-
####################
|
4
|
-
# England
|
5
|
-
|
6
|
-
|
7
|
-
def self.eng1( season )
|
8
|
-
case season ## todo/fix: - use cast e.g. Season(season) - make sure it's a season obj
|
9
|
-
when Season('1888/89')..Season('1891/92') ## single league (no divisions)
|
10
|
-
{name: 'English Football League',
|
11
|
-
basename: '1-footballleague'}
|
12
|
-
when Season('1892/93')..Season('1991/92') ## start of division 1 & 2
|
13
|
-
{name: 'English Division One',
|
14
|
-
basename: '1-division1'}
|
15
|
-
else ## starts in season 1992/93
|
16
|
-
{name: 'English Premier League',
|
17
|
-
basename: '1-premierleague'}
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.eng2( season )
|
22
|
-
case season
|
23
|
-
when Season('1892/93')..Season('1991/92')
|
24
|
-
{name: 'English Division Two', ## or use English Football League Second Division ???
|
25
|
-
basename: '2-division2'}
|
26
|
-
when Season('1992/93')..Season('2003/04') ## start of premier league
|
27
|
-
{name: 'English Division One',
|
28
|
-
basename: '2-division1'}
|
29
|
-
else # starts in 2004/05
|
30
|
-
{name: 'English Championship', ## rebranding divsion 1 => championship
|
31
|
-
basename: '2-championship'}
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
|
36
|
-
LEAGUES.merge!(
|
37
|
-
'eng.1' => { name: ->(season) { eng1( season )[ :name ] },
|
38
|
-
basename: ->(season) { eng1( season )[ :basename ] },
|
39
|
-
},
|
40
|
-
'eng.2' => { name: ->(season) { eng2( season )[ :name ] },
|
41
|
-
basename: ->(season) { eng2( season )[ :basename ] },
|
42
|
-
},
|
43
|
-
'eng.3' => { name: 'English League One',
|
44
|
-
basename: '3-league1',
|
45
|
-
},
|
46
|
-
'eng.4' => { name: 'English League Two',
|
47
|
-
basename: '4-league2',
|
48
|
-
},
|
49
|
-
'eng.5' => { name: 'English National League',
|
50
|
-
basename: '5-nationalleague',
|
51
|
-
},
|
52
|
-
'eng.cup' => { name: 'English FA Cup',
|
53
|
-
basename: 'facup',
|
54
|
-
}
|
55
|
-
)
|
56
|
-
|
57
|
-
end # module Writer
|
58
|
-
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module Writer
|
2
|
-
|
3
|
-
LEAGUES.merge!(
|
4
|
-
###################
|
5
|
-
# Spain / Espana
|
6
|
-
'es.1' => { name: 'Primera División de España',
|
7
|
-
basename: '1-liga',
|
8
|
-
},
|
9
|
-
'es.2' => { name: 'Segunda División de España',
|
10
|
-
basename: '2-liga2',
|
11
|
-
},
|
12
|
-
)
|
13
|
-
|
14
|
-
end # module Writer
|
15
|
-
|