football-sources 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +4 -0
- data/Manifest.txt +36 -0
- data/README.md +28 -0
- data/Rakefile +31 -0
- data/lib/football-sources.rb +46 -0
- data/lib/football-sources/apis.rb +86 -0
- data/lib/football-sources/apis/config.rb +17 -0
- data/lib/football-sources/apis/convert.rb +239 -0
- data/lib/football-sources/apis/convert_cl.rb +267 -0
- data/lib/football-sources/apis/download.rb +11 -0
- data/lib/football-sources/apis/stat.rb +59 -0
- data/lib/football-sources/version.rb +19 -0
- data/lib/football-sources/worldfootball.rb +24 -0
- data/lib/football-sources/worldfootball/build.rb +245 -0
- data/lib/football-sources/worldfootball/config.rb +16 -0
- data/lib/football-sources/worldfootball/convert.rb +100 -0
- data/lib/football-sources/worldfootball/convert_reports.rb +107 -0
- data/lib/football-sources/worldfootball/download.rb +61 -0
- data/lib/football-sources/worldfootball/leagues.rb +200 -0
- data/lib/football-sources/worldfootball/leagues/asia.rb +53 -0
- data/lib/football-sources/worldfootball/leagues/europe--british_isles.rb +59 -0
- data/lib/football-sources/worldfootball/leagues/europe--central.rb +127 -0
- data/lib/football-sources/worldfootball/leagues/europe--eastern.rb +82 -0
- data/lib/football-sources/worldfootball/leagues/europe--northern.rb +57 -0
- data/lib/football-sources/worldfootball/leagues/europe--southern.rb +86 -0
- data/lib/football-sources/worldfootball/leagues/europe--western.rb +38 -0
- data/lib/football-sources/worldfootball/leagues/europe.rb +13 -0
- data/lib/football-sources/worldfootball/leagues/north_america.rb +44 -0
- data/lib/football-sources/worldfootball/leagues/pacific.rb +21 -0
- data/lib/football-sources/worldfootball/leagues/south_america.rb +11 -0
- data/lib/football-sources/worldfootball/mods.rb +72 -0
- data/lib/football-sources/worldfootball/tool.rb +100 -0
- data/lib/football-sources/worldfootball/vacuum.rb +66 -0
- data/lib/football/sources.rb +6 -0
- data/test/helper.rb +8 -0
- data/test/test_version.rb +16 -0
- metadata +147 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
|
2
|
+
module Worldfootball
|
3
|
+
|
4
|
+
LEAGUES_EUROPE.merge!({
|
5
|
+
'fr.1' => { pages: 'fra-ligue-1' },
|
6
|
+
'fr.2' => { pages: 'fra-ligue-2' },
|
7
|
+
|
8
|
+
# e.g. /lux-nationaldivision-2020-2021/
|
9
|
+
'lu.1' => { pages: 'lux-nationaldivision' },
|
10
|
+
|
11
|
+
# e.g. /ned-eredivisie-2020-2021/
|
12
|
+
'nl.1' => { pages: 'ned-eredivisie' },
|
13
|
+
# Championship play-offs
|
14
|
+
# Europa League play-offs (Group A + Group B / Finals )
|
15
|
+
|
16
|
+
# e.g. /bel-eerste-klasse-a-2020-2021/
|
17
|
+
# /bel-europa-league-playoffs-2018-2019-playoff/
|
18
|
+
# - Halbfinale
|
19
|
+
# - Finale
|
20
|
+
'be.1' => {
|
21
|
+
pages: {
|
22
|
+
'bel-eerste-klasse-a-{season}' => 'Regular Season',
|
23
|
+
'bel-eerste-klasse-a-{season}-playoff-i' => 'Playoffs - Championship',
|
24
|
+
'bel-europa-league-playoffs-{season}' => 'Playoffs - Europa League', ## note: missing groups (A & B)
|
25
|
+
'bel-europa-league-playoffs-{season}-playoff' => 'Playoffs - Europa League - Finals',
|
26
|
+
},
|
27
|
+
season: ->( season ) {
|
28
|
+
case season
|
29
|
+
when Season('2020/21') then [1] # just getting started
|
30
|
+
when Season('2019/20') then [1] # covid-19 - no championship & europa
|
31
|
+
when Season('2018/19') then [1,2,3,4]
|
32
|
+
end
|
33
|
+
}
|
34
|
+
},
|
35
|
+
|
36
|
+
})
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
module Worldfootball
|
3
|
+
LEAGUES_EUROPE = {}
|
4
|
+
end
|
5
|
+
|
6
|
+
|
7
|
+
require_relative 'europe--western'
|
8
|
+
require_relative 'europe--british_isles'
|
9
|
+
require_relative 'europe--northern'
|
10
|
+
require_relative 'europe--central'
|
11
|
+
require_relative 'europe--eastern'
|
12
|
+
require_relative 'europe--southern'
|
13
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Worldfootball
|
2
|
+
|
3
|
+
LEAGUES_NORTH_AMERICA = {
|
4
|
+
|
5
|
+
# todo/fix: adjust date/time by -6 or 7 hours!!!
|
6
|
+
# /can-canadian-championship-2020/
|
7
|
+
# - Qual. 1. Runde
|
8
|
+
# - Qual. 2. Runde
|
9
|
+
# - Qual. 3. Runde
|
10
|
+
# todo/fix: check for leagues - premier league? championship? soccer league?
|
11
|
+
# 'ca.1' => { slug: 'can-canadian-championship' },
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
# todo/fix: adjust date/time by -7 hours!!!
|
16
|
+
## e.g. 25.07.2020 02:30 => 24.07.2020 19.30
|
17
|
+
# 11.01.2020 04:00 => 10.01.2020 21.00
|
18
|
+
#
|
19
|
+
# e.g. /mex-primera-division-2020-2021-apertura/
|
20
|
+
# /mex-primera-division-2019-2020-clausura/
|
21
|
+
# /mex-primera-division-2019-2020-apertura-playoffs/
|
22
|
+
# - Viertelfinale
|
23
|
+
# - Halbfinale
|
24
|
+
# - Finale
|
25
|
+
# /mex-primera-division-2018-2019-clausura-playoffs/
|
26
|
+
'mx.1' => {
|
27
|
+
pages: {
|
28
|
+
'mex-primera-division-{season}-apertura' => 'Apertura', # 1
|
29
|
+
'mex-primera-division-{season}-apertura-playoffs' => 'Apertura - Liguilla', # 2
|
30
|
+
'mex-primera-division-{season}-clausura' => 'Clausura', # 3
|
31
|
+
'mex-primera-division-{season}-clausura-playoffs' => 'Clausura - Liguilla', # 4
|
32
|
+
},
|
33
|
+
season: ->( season ) {
|
34
|
+
case season
|
35
|
+
when Season('2020/21') then [1] # just getting started
|
36
|
+
when Season('2019/20') then [1,2,3] # covid-19 - no liguilla
|
37
|
+
when Season('2010/11')..Season('2018/19') then [1,2,3,4]
|
38
|
+
end
|
39
|
+
}
|
40
|
+
},
|
41
|
+
}
|
42
|
+
|
43
|
+
end # module Worldfootball
|
44
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Worldfootball
|
2
|
+
|
3
|
+
LEAGUES_PACIFIC = {
|
4
|
+
|
5
|
+
# /nzl-nz-football-championship-2019-2020/
|
6
|
+
# /nzl-nz-football-championship-2018-2019-playoffs/
|
7
|
+
'nz.1' => {
|
8
|
+
pages: {
|
9
|
+
'nzl-nz-football-championship-{season}' => 'Regular Season', # 1
|
10
|
+
'nzl-nz-football-championship-{season}-playoffs' => 'Playoff Finals', # 2
|
11
|
+
},
|
12
|
+
season: ->( season ) {
|
13
|
+
case season
|
14
|
+
when Season('2019/20') then [1] ## covid-19 - no playoffs/finals
|
15
|
+
when Season('2018/19') then [1,2]
|
16
|
+
end
|
17
|
+
}
|
18
|
+
},
|
19
|
+
}
|
20
|
+
|
21
|
+
end # module Worldfootball
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#### todo/check: move MODS and SCORE_ERRORS out-of-lib
|
2
|
+
## and into config or such - why? why not?
|
3
|
+
|
4
|
+
|
5
|
+
module Worldfootball
|
6
|
+
|
7
|
+
|
8
|
+
######
|
9
|
+
# "global" helpers
|
10
|
+
def self.norm_team( team )
|
11
|
+
## clean team name and asciify (e.g. ’->' )
|
12
|
+
team = team.sub( '(old)', '' ).strip
|
13
|
+
team = team.gsub( '’', "'" ) ## e.g. Hawke’s Bay United FC
|
14
|
+
team
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
MODS = {
|
20
|
+
'at' => {
|
21
|
+
## AT 1
|
22
|
+
'SC Magna Wiener Neustadt' => 'SC Wiener Neustadt', # in 2010/11
|
23
|
+
'KSV Superfund' => 'Kapfenberger SV', # in 2010/11
|
24
|
+
'Kapfenberger SV 1919' => 'Kapfenberger SV', # in 2011/12
|
25
|
+
'FC Trenkwalder Admira' => 'FC Admira Wacker', # in 2011/12
|
26
|
+
## AT 2
|
27
|
+
'Austria Wien (A)' => 'Young Violets', # in 2019/20
|
28
|
+
'FC Wacker Innsbruck (A)' => 'FC Wacker Innsbruck II', # in 2018/19
|
29
|
+
## AT CUP
|
30
|
+
'Rapid Wien (A)' => 'Rapid Wien II', # in 2011/12
|
31
|
+
'Sturm Graz (A)' => 'Sturm Graz II',
|
32
|
+
'Kapfenberger SV 1919 (A)' => 'Kapfenberger SV II',
|
33
|
+
'SV Grödig (A)' => 'SV Grödig II',
|
34
|
+
'RB Salzburg (A)' => 'RB Salzburg II',
|
35
|
+
'SR WGFM Donaufeld' => 'SR Donaufeld Wien',
|
36
|
+
'FC Trenkwalder Admira (A)' => 'FC Admira Wacker II',
|
37
|
+
## AT 3.O (Regionalliga Ost)
|
38
|
+
'FC Admira Wacker (A)' => 'FC Admira Wacker II', # in 2020/21
|
39
|
+
},
|
40
|
+
'nz' => {
|
41
|
+
## NZ 1
|
42
|
+
'Wellington Phoenix (R)' => 'Wellington Phoenix Reserves',
|
43
|
+
},
|
44
|
+
}
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
## fix/patch known score format errors in at/de cups
|
49
|
+
## new convention
|
50
|
+
## for a fix require league, date, and team1 & team2 for now!!!!
|
51
|
+
## - do NOT use some "generic" fix / patch!!!!
|
52
|
+
##
|
53
|
+
## old de/at patches/fixes:
|
54
|
+
## '0-1 (0-0, 0-0, 0-0) n.V.' => '0-1 (0-0, 0-0) n.V.', # too long
|
55
|
+
## '2-1 (1-1, 1-1, 1-0) n.V.' => '2-1 (1-1, 1-1) n.V.',
|
56
|
+
## '4-2 (0-0, 0-0) i.E.' => '4-2 (0-0, 0-0, 0-0) i.E.', # too short
|
57
|
+
|
58
|
+
|
59
|
+
SCORE_ERRORS = {
|
60
|
+
'ro.1' => {
|
61
|
+
## 2013/14
|
62
|
+
'2013-07-29' => [ 'FC Brașov', 'Săgeata Năvodari', ['1-1 (0-0, 0-1)', '1-1 (0-0)']],
|
63
|
+
},
|
64
|
+
'gr.1' => {
|
65
|
+
## 2010/11
|
66
|
+
'2010-11-24' => [ 'Ergotelis', 'Olympiakos Piräus', ['0-2 (0-0, 0-0, 0-0)', '0-2 (0-0)']],
|
67
|
+
'2010-11-28' => [ 'Panserraikos', 'Aris Saloniki', ['1-0 (1-0, 0-0, 0-0)', '1-0 (1-0)']],
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
end # module Worldfootball
|
@@ -0,0 +1,100 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Worldfootball
|
4
|
+
################################
|
5
|
+
# add more helpers
|
6
|
+
# move upstream for (re)use - why? why not?
|
7
|
+
|
8
|
+
## todo/check: what to do: if league is both included and excluded?
|
9
|
+
## include forces include? or exclude has the last word? - why? why not?
|
10
|
+
## Excludes match before includes,
|
11
|
+
## meaning that something that has been excluded cannot be included again
|
12
|
+
|
13
|
+
## todo - find "proper/classic" timezone ("winter time")
|
14
|
+
|
15
|
+
## Brasilia - Distrito Federal, Brasil (GMT-3) -- summer time?
|
16
|
+
## Ciudad de México, CDMX, México (GMT-5) -- summer time?
|
17
|
+
## Londres, Reino Unido (GMT+1)
|
18
|
+
## Madrid -- ?
|
19
|
+
## Lisboa -- ?
|
20
|
+
## Moskow -- ?
|
21
|
+
##
|
22
|
+
## todo/check - quick fix timezone offsets for leagues for now
|
23
|
+
## - find something better - why? why not?
|
24
|
+
## note: assume time is in GMT+1
|
25
|
+
OFFSETS = {
|
26
|
+
'eng.1' => -1,
|
27
|
+
'eng.2' => -1,
|
28
|
+
'eng.3' => -1,
|
29
|
+
'eng.4' => -1,
|
30
|
+
'eng.5' => -1,
|
31
|
+
|
32
|
+
'es.1' => -1,
|
33
|
+
'es.2' => -1,
|
34
|
+
|
35
|
+
'pt.1' => -1,
|
36
|
+
'pt.2' => -1,
|
37
|
+
|
38
|
+
'br.1' => -5,
|
39
|
+
'mx.1' => -7,
|
40
|
+
}
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
class Tool
|
46
|
+
def initialize( includes: nil,
|
47
|
+
excludes: nil )
|
48
|
+
## quick fix: move/handle empty array upstream!!!!
|
49
|
+
includes = nil if includes.is_a?(Array) && includes.empty?
|
50
|
+
|
51
|
+
@includes = includes
|
52
|
+
@excludes = excludes
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
def download( datasets )
|
58
|
+
datasets.each do |dataset|
|
59
|
+
league = dataset[0]
|
60
|
+
seasons = dataset[1]
|
61
|
+
|
62
|
+
with_filter( league ) do
|
63
|
+
seasons.each do |season|
|
64
|
+
puts "downloading #{league} #{season}..."
|
65
|
+
|
66
|
+
Worldfootball.schedule( league: league,
|
67
|
+
season: season )
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def convert( datasets )
|
74
|
+
datasets.each do |dataset|
|
75
|
+
league = dataset[0]
|
76
|
+
seasons = dataset[1]
|
77
|
+
|
78
|
+
with_filter( league ) do
|
79
|
+
seasons.each do |season|
|
80
|
+
Worldfootball.convert( league: league,
|
81
|
+
season: season,
|
82
|
+
offset: OFFSETS[ league ] )
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
|
89
|
+
#########################################
|
90
|
+
# more helpers
|
91
|
+
def with_filter( league, &blk )
|
92
|
+
return if @excludes && @excludes.find { |q| league.start_with?( q.downcase ) }
|
93
|
+
return if @includes && @includes.find { |q| league.start_with?( q.downcase ) }.nil?
|
94
|
+
blk.call()
|
95
|
+
end
|
96
|
+
|
97
|
+
end # class Tool
|
98
|
+
end # module Worldfootball
|
99
|
+
|
100
|
+
|
@@ -0,0 +1,66 @@
|
|
1
|
+
module Worldfootball
|
2
|
+
|
3
|
+
|
4
|
+
MAX_HEADERS = [
|
5
|
+
'Stage',
|
6
|
+
'Round',
|
7
|
+
'Date',
|
8
|
+
'Time',
|
9
|
+
'Team 1',
|
10
|
+
'FT',
|
11
|
+
'HT',
|
12
|
+
'Team 2',
|
13
|
+
'ET',
|
14
|
+
'P',
|
15
|
+
'Comments'] ## e.g. awarded, cancelled/canceled, etc.
|
16
|
+
|
17
|
+
MIN_HEADERS = [ ## always keep even if all empty
|
18
|
+
'Date',
|
19
|
+
'Team 1',
|
20
|
+
'FT',
|
21
|
+
'Team 2'
|
22
|
+
]
|
23
|
+
|
24
|
+
def self.vacuum( rows, headers: MAX_HEADERS, fixed_headers: MIN_HEADERS )
|
25
|
+
## check for unused columns and strip/remove
|
26
|
+
counter = Array.new( MAX_HEADERS.size, 0 )
|
27
|
+
rows.each do |row|
|
28
|
+
row.each_with_index do |col, idx|
|
29
|
+
counter[idx] += 1 unless col.nil? || col.empty?
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
pp counter
|
34
|
+
|
35
|
+
## check empty columns
|
36
|
+
headers = []
|
37
|
+
indices = []
|
38
|
+
empty_headers = []
|
39
|
+
empty_indices = []
|
40
|
+
|
41
|
+
counter.each_with_index do |num, idx|
|
42
|
+
header = MAX_HEADERS[ idx ]
|
43
|
+
if num > 0 || (num == 0 && fixed_headers.include?( header ))
|
44
|
+
headers << header
|
45
|
+
indices << idx
|
46
|
+
else
|
47
|
+
empty_headers << header
|
48
|
+
empty_indices << idx
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
if empty_indices.size > 0
|
53
|
+
rows = rows.map do |row|
|
54
|
+
row_vacuumed = []
|
55
|
+
row.each_with_index do |col, idx|
|
56
|
+
## todo/fix: use values or such??
|
57
|
+
row_vacuumed << col unless empty_indices.include?( idx )
|
58
|
+
end
|
59
|
+
row_vacuumed
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
[rows, headers]
|
64
|
+
end
|
65
|
+
|
66
|
+
end # module Worldfootball
|
data/test/helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
###
|
2
|
+
# to run use
|
3
|
+
# ruby -I ./lib -I ./test test/test_version.rb
|
4
|
+
|
5
|
+
|
6
|
+
require 'helper'
|
7
|
+
|
8
|
+
class TestVersion < MiniTest::Test
|
9
|
+
|
10
|
+
def test_version
|
11
|
+
pp FootballSources::VERSION
|
12
|
+
pp FootballSources.banner
|
13
|
+
pp FootballSources.root
|
14
|
+
end
|
15
|
+
|
16
|
+
end # class TestVersion
|
metadata
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: football-sources
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Gerald Bauer
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-11-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: webget-football
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sportdb-catalogs
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rdoc
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.0'
|
48
|
+
- - "<"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '7'
|
51
|
+
type: :development
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '4.0'
|
58
|
+
- - "<"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '7'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: hoe
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '3.22'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '3.22'
|
75
|
+
description: football-sources - get football data via web pages or web api (json)
|
76
|
+
calls
|
77
|
+
email: opensport@googlegroups.com
|
78
|
+
executables: []
|
79
|
+
extensions: []
|
80
|
+
extra_rdoc_files:
|
81
|
+
- CHANGELOG.md
|
82
|
+
- Manifest.txt
|
83
|
+
- README.md
|
84
|
+
files:
|
85
|
+
- CHANGELOG.md
|
86
|
+
- Manifest.txt
|
87
|
+
- README.md
|
88
|
+
- Rakefile
|
89
|
+
- lib/football-sources.rb
|
90
|
+
- lib/football-sources/apis.rb
|
91
|
+
- lib/football-sources/apis/config.rb
|
92
|
+
- lib/football-sources/apis/convert.rb
|
93
|
+
- lib/football-sources/apis/convert_cl.rb
|
94
|
+
- lib/football-sources/apis/download.rb
|
95
|
+
- lib/football-sources/apis/stat.rb
|
96
|
+
- lib/football-sources/version.rb
|
97
|
+
- lib/football-sources/worldfootball.rb
|
98
|
+
- lib/football-sources/worldfootball/build.rb
|
99
|
+
- lib/football-sources/worldfootball/config.rb
|
100
|
+
- lib/football-sources/worldfootball/convert.rb
|
101
|
+
- lib/football-sources/worldfootball/convert_reports.rb
|
102
|
+
- lib/football-sources/worldfootball/download.rb
|
103
|
+
- lib/football-sources/worldfootball/leagues.rb
|
104
|
+
- lib/football-sources/worldfootball/leagues/asia.rb
|
105
|
+
- lib/football-sources/worldfootball/leagues/europe--british_isles.rb
|
106
|
+
- lib/football-sources/worldfootball/leagues/europe--central.rb
|
107
|
+
- lib/football-sources/worldfootball/leagues/europe--eastern.rb
|
108
|
+
- lib/football-sources/worldfootball/leagues/europe--northern.rb
|
109
|
+
- lib/football-sources/worldfootball/leagues/europe--southern.rb
|
110
|
+
- lib/football-sources/worldfootball/leagues/europe--western.rb
|
111
|
+
- lib/football-sources/worldfootball/leagues/europe.rb
|
112
|
+
- lib/football-sources/worldfootball/leagues/north_america.rb
|
113
|
+
- lib/football-sources/worldfootball/leagues/pacific.rb
|
114
|
+
- lib/football-sources/worldfootball/leagues/south_america.rb
|
115
|
+
- lib/football-sources/worldfootball/mods.rb
|
116
|
+
- lib/football-sources/worldfootball/tool.rb
|
117
|
+
- lib/football-sources/worldfootball/vacuum.rb
|
118
|
+
- lib/football/sources.rb
|
119
|
+
- test/helper.rb
|
120
|
+
- test/test_version.rb
|
121
|
+
homepage: https://github.com/sportdb/sport.db
|
122
|
+
licenses:
|
123
|
+
- Public Domain
|
124
|
+
metadata: {}
|
125
|
+
post_install_message:
|
126
|
+
rdoc_options:
|
127
|
+
- "--main"
|
128
|
+
- README.md
|
129
|
+
require_paths:
|
130
|
+
- lib
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: 2.2.2
|
136
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
141
|
+
requirements: []
|
142
|
+
rubyforge_project:
|
143
|
+
rubygems_version: 2.5.2
|
144
|
+
signing_key:
|
145
|
+
specification_version: 4
|
146
|
+
summary: football-sources - get football data via web pages or web api (json) calls
|
147
|
+
test_files: []
|