sportdb 1.8.23 → 1.8.24
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.
- data/Manifest.txt +10 -1
- data/bin/sportdb +0 -0
- data/lib/sportdb.rb +2 -1
- data/lib/sportdb/reader.rb +24 -16
- data/lib/sportdb/readers/national_team.rb +148 -0
- data/lib/sportdb/readers/{roster.rb → race_team.rb} +6 -5
- data/lib/sportdb/version.rb +1 -1
- data/test/data/players/europe/de-deutschland/players.txt +41 -0
- data/test/data/players/south-america/br-brazil/players.txt +51 -0
- data/test/data/world-cup/2014/cup.txt +5 -0
- data/test/data/world-cup/2014/cup.yml +54 -0
- data/test/data/world-cup/2014/squads/br-brazil.txt +46 -0
- data/test/data/world-cup/2014/squads/de-deutschland.txt +8 -0
- data/test/helper.rb +10 -4
- data/test/test_load.rb +61 -0
- data/test/test_national_team_reader.rb +80 -0
- metadata +63 -86
- checksums.yaml +0 -7
data/Manifest.txt
CHANGED
|
@@ -54,9 +54,10 @@ lib/sportdb/readers/event.rb
|
|
|
54
54
|
lib/sportdb/readers/game.rb
|
|
55
55
|
lib/sportdb/readers/ground.rb
|
|
56
56
|
lib/sportdb/readers/league.rb
|
|
57
|
+
lib/sportdb/readers/national_team.rb
|
|
57
58
|
lib/sportdb/readers/race.rb
|
|
59
|
+
lib/sportdb/readers/race_team.rb
|
|
58
60
|
lib/sportdb/readers/record.rb
|
|
59
|
-
lib/sportdb/readers/roster.rb
|
|
60
61
|
lib/sportdb/readers/season.rb
|
|
61
62
|
lib/sportdb/readers/team.rb
|
|
62
63
|
lib/sportdb/readers/track.rb
|
|
@@ -110,6 +111,8 @@ test/data/at-austria/2013_14/el.yml
|
|
|
110
111
|
test/data/at-austria/leagues.txt
|
|
111
112
|
test/data/at-austria/teams.txt
|
|
112
113
|
test/data/at-austria/teams_2.txt
|
|
114
|
+
test/data/players/europe/de-deutschland/players.txt
|
|
115
|
+
test/data/players/south-america/br-brazil/players.txt
|
|
113
116
|
test/data/world-cup/1930/cup.txt
|
|
114
117
|
test/data/world-cup/1930/cup.yml
|
|
115
118
|
test/data/world-cup/1954/cup.txt
|
|
@@ -120,6 +123,10 @@ test/data/world-cup/1974/cup.yml
|
|
|
120
123
|
test/data/world-cup/1974/cup_finals.txt
|
|
121
124
|
test/data/world-cup/1974/cup_i.txt
|
|
122
125
|
test/data/world-cup/1974/cup_ii.txt
|
|
126
|
+
test/data/world-cup/2014/cup.txt
|
|
127
|
+
test/data/world-cup/2014/cup.yml
|
|
128
|
+
test/data/world-cup/2014/squads/br-brazil.txt
|
|
129
|
+
test/data/world-cup/2014/squads/de-deutschland.txt
|
|
123
130
|
test/data/world-cup/leagues.txt
|
|
124
131
|
test/data/world-cup/seasons_1930.txt
|
|
125
132
|
test/data/world-cup/seasons_1954.txt
|
|
@@ -134,6 +141,8 @@ test/test_changes.rb
|
|
|
134
141
|
test/test_cursor.rb
|
|
135
142
|
test/test_date.rb
|
|
136
143
|
test/test_lang.rb
|
|
144
|
+
test/test_load.rb
|
|
145
|
+
test/test_national_team_reader.rb
|
|
137
146
|
test/test_reader.rb
|
|
138
147
|
test/test_round_auto.rb
|
|
139
148
|
test/test_round_def.rb
|
data/bin/sportdb
CHANGED
|
File without changes
|
data/lib/sportdb.rb
CHANGED
|
@@ -95,7 +95,8 @@ require 'sportdb/readers/ground'
|
|
|
95
95
|
require 'sportdb/readers/league'
|
|
96
96
|
require 'sportdb/readers/race'
|
|
97
97
|
require 'sportdb/readers/record'
|
|
98
|
-
require 'sportdb/readers/
|
|
98
|
+
require 'sportdb/readers/race_team'
|
|
99
|
+
require 'sportdb/readers/national_team'
|
|
99
100
|
require 'sportdb/readers/season'
|
|
100
101
|
require 'sportdb/readers/team'
|
|
101
102
|
require 'sportdb/readers/track'
|
data/lib/sportdb/reader.rb
CHANGED
|
@@ -73,27 +73,40 @@ class Reader
|
|
|
73
73
|
reader = TrackReader.new( include_path )
|
|
74
74
|
reader.read( name )
|
|
75
75
|
elsif name =~ /^drivers/ # e.g. drivers.txt in formula1.db
|
|
76
|
-
|
|
76
|
+
reader = PersonDb::PersonReader.new( include_path )
|
|
77
|
+
reader.read( name )
|
|
77
78
|
elsif match_players_for_country( name ) do |country_key|
|
|
78
79
|
country = Country.find_by_key!( country_key )
|
|
79
|
-
|
|
80
|
+
reader = PersonDb::PersonReader.new( include_path )
|
|
81
|
+
reader.read( name, country_id: country.id )
|
|
80
82
|
end
|
|
81
83
|
elsif match_skiers_for_country( name ) do |country_key| # name =~ /^([a-z]{2})\/skiers/
|
|
82
84
|
# auto-add country code (from folder structure) for country-specific skiers (persons)
|
|
83
85
|
# e.g. at/skiers or at-austria/skiers.men
|
|
84
86
|
country = Country.find_by_key!( country_key )
|
|
85
|
-
|
|
87
|
+
reader = PersonDb::PersonReader.new( include_path )
|
|
88
|
+
reader.read( name, country_id: country.id )
|
|
86
89
|
end
|
|
87
90
|
elsif name =~ /^skiers/ # e.g. skiers.men.txt in ski.db
|
|
88
|
-
|
|
91
|
+
reader = PersonDb::PersonReader.new( include_path )
|
|
92
|
+
reader.read( name )
|
|
89
93
|
elsif name =~ /^teams/ # e.g. teams.txt in formula1.db
|
|
90
94
|
reader = TeamReader.new( include_path )
|
|
91
95
|
reader.read( name )
|
|
92
96
|
elsif name =~ /\/races/ # e.g. 2013/races.txt in formula1.db
|
|
97
|
+
## fix/bug: NOT working for now; sorry
|
|
98
|
+
# need to read event first and pass along to read (event_id: event.id) etc.
|
|
93
99
|
reader = RaceReader.new( include_path )
|
|
94
100
|
reader.read( name )
|
|
101
|
+
elsif name =~ /\/squads\/([a-z]{2,3})-[^\/]+$/
|
|
102
|
+
## fix: add to country matcher new format
|
|
103
|
+
## name is country! and parent folder is type name e.g. /squads/br-brazil
|
|
104
|
+
country = Country.find_by_key!( $1 )
|
|
105
|
+
reader = NationalTeamReader.new( include_path )
|
|
106
|
+
## note: pass in @event.id - that is, last seen event (e.g. parsed via GameReader/MatchReader)
|
|
107
|
+
reader.read( name, country_id: country.id, event_id: @event.id )
|
|
95
108
|
elsif name =~ /\/squads/ || name =~ /\/rosters/ # e.g. 2013/squads.txt in formula1.db
|
|
96
|
-
reader =
|
|
109
|
+
reader = RaceTeamReader.new( include_path )
|
|
97
110
|
reader.read( name )
|
|
98
111
|
elsif name =~ /\/([0-9]{2})-/
|
|
99
112
|
race_pos = $1.to_i
|
|
@@ -131,6 +144,12 @@ class Reader
|
|
|
131
144
|
reader.read( name, club: is_club_fixture?( name ) )
|
|
132
145
|
elsif name =~ /\/(\d{4}|\d{4}_\d{2})(--[^\/]+)?\// ||
|
|
133
146
|
name =~ /\/(\d{4}|\d{4}_\d{2})$/
|
|
147
|
+
|
|
148
|
+
# note: keep a "public" reference of last event in @event - e.g. used/required by squads etc.
|
|
149
|
+
eventreader = EventReader.new( include_path )
|
|
150
|
+
eventreader.read( name )
|
|
151
|
+
@event = eventreader.event
|
|
152
|
+
|
|
134
153
|
# e.g. must match /2012/ or /2012_13/ or /2012--xxx/ or /2012_13--xx/
|
|
135
154
|
# or /2012 or /2012_13 e.g. brazil/2012 or brazil/2012_13
|
|
136
155
|
reader = GameReader.new( include_path )
|
|
@@ -142,16 +161,5 @@ class Reader
|
|
|
142
161
|
end # method load
|
|
143
162
|
|
|
144
163
|
|
|
145
|
-
####
|
|
146
|
-
# fix: move to persondb for (re)use
|
|
147
|
-
|
|
148
|
-
def load_persons( name, more_attribs={} )
|
|
149
|
-
reader = PersonDb::PersonReader.new( include_path )
|
|
150
|
-
## fix: add more_attribs !!!!! -- check other readers as an example
|
|
151
|
-
## - gets added to new or read??
|
|
152
|
-
reader.read( name )
|
|
153
|
-
end # load_persons
|
|
154
|
-
|
|
155
|
-
|
|
156
164
|
end # class Reader
|
|
157
165
|
end # module SportDb
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
module SportDb
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### squad/roster reader for national teams
|
|
7
|
+
class NationalTeamReader
|
|
8
|
+
|
|
9
|
+
include LogUtils::Logging
|
|
10
|
+
|
|
11
|
+
## make models available by default with namespace
|
|
12
|
+
# e.g. lets you use Usage instead of Model::Usage
|
|
13
|
+
include Models
|
|
14
|
+
|
|
15
|
+
## value helpers e.g. is_year?, is_taglist? etc.
|
|
16
|
+
include TextUtils::ValueHelper
|
|
17
|
+
|
|
18
|
+
include FixtureHelpers
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
attr_reader :include_path
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def initialize( include_path, opts = {} )
|
|
25
|
+
@include_path = include_path
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def read( name, more_attribs={} )
|
|
30
|
+
path = "#{include_path}/#{name}.txt"
|
|
31
|
+
|
|
32
|
+
logger.info "parsing data '#{name}' (#{path})..."
|
|
33
|
+
|
|
34
|
+
# event
|
|
35
|
+
@event = Event.find( more_attribs[:event_id] )
|
|
36
|
+
pp @event
|
|
37
|
+
|
|
38
|
+
## check/fix:
|
|
39
|
+
## allow three letter codes
|
|
40
|
+
## assume three letter code are *team* codes (e.g. fdr, gdr, etc)
|
|
41
|
+
## not country code (allows multiple teams per country)
|
|
42
|
+
|
|
43
|
+
### check for country_id
|
|
44
|
+
## fix: check for country_key - allow (convert to country_id)
|
|
45
|
+
|
|
46
|
+
country = Country.find( more_attribs[:country_id] )
|
|
47
|
+
logger.info " find national team squad/lineup for #{country.name}"
|
|
48
|
+
|
|
49
|
+
## todo/fix: find national team for country - use event.teams w/ where country.id ??
|
|
50
|
+
### for now assume country code matches team for now (do NOT forget to downcase e.g. BRA==bra)
|
|
51
|
+
logger.info " assume country code == team code for #{country.code}"
|
|
52
|
+
|
|
53
|
+
## note: use @team - share/use in worker method
|
|
54
|
+
@team = Team.find_by_key!( country.code.downcase )
|
|
55
|
+
pp @team
|
|
56
|
+
|
|
57
|
+
### SportDb.lang.lang = LangChecker.new.analyze( name, include_path )
|
|
58
|
+
|
|
59
|
+
reader = LineReader.new( path )
|
|
60
|
+
|
|
61
|
+
logger.info " persons count for country: #{country.persons.count}"
|
|
62
|
+
known_persons_old = TextUtils.build_title_table_for( country.persons )
|
|
63
|
+
|
|
64
|
+
### fix: add auto camelcase/titlecase
|
|
65
|
+
## move to textutils
|
|
66
|
+
## make it an option for name to auto Camelcase/titlecase?
|
|
67
|
+
## e.g. BONFIM COSTA SANTOS becomes
|
|
68
|
+
## Bonfim Costa Santos etc.
|
|
69
|
+
## fix: better move into person parser?
|
|
70
|
+
## store all alt_names titleized!!!!!
|
|
71
|
+
|
|
72
|
+
@known_persons = []
|
|
73
|
+
known_persons_old.each do |person_pair|
|
|
74
|
+
key = person_pair[0]
|
|
75
|
+
values = person_pair[1].map { |value| titleize(value) }
|
|
76
|
+
|
|
77
|
+
@known_persons << [ key, values ]
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
pp @known_persons
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
read_worker( reader )
|
|
84
|
+
|
|
85
|
+
Prop.create_from_fixture!( name, path )
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def titleize( str )
|
|
90
|
+
## fix: for now works only with ASCII only
|
|
91
|
+
## words 2 letters and ups
|
|
92
|
+
str.gsub(/\b[A-Z]{2,}\b/) { |match| match.capitalize }
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def read_worker( reader )
|
|
97
|
+
|
|
98
|
+
pos_counter = 999000 # pos counter for undefined players w/o pos
|
|
99
|
+
|
|
100
|
+
reader.each_line do |line|
|
|
101
|
+
logger.debug " line: >#{line}<"
|
|
102
|
+
|
|
103
|
+
cut_off_end_of_line_comment!( line )
|
|
104
|
+
|
|
105
|
+
pos = find_leading_pos!( line )
|
|
106
|
+
|
|
107
|
+
if pos.nil?
|
|
108
|
+
pos_counter+=1 ## e.g. 999001,999002 etc.
|
|
109
|
+
pos = pos_counter
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# map_team!( line )
|
|
113
|
+
# team_key = find_team!( line )
|
|
114
|
+
# team = Team.find_by_key!( team_key )
|
|
115
|
+
|
|
116
|
+
map_person!( line )
|
|
117
|
+
person_key = find_person!( line )
|
|
118
|
+
person = Person.find_by_key!( person_key )
|
|
119
|
+
|
|
120
|
+
logger.debug " line2: >#{line}<"
|
|
121
|
+
|
|
122
|
+
### check if roster record exists
|
|
123
|
+
roster = Roster.find_by_event_id_and_team_id_and_person_id( @event.id, @team.id, person.id )
|
|
124
|
+
|
|
125
|
+
if roster.present?
|
|
126
|
+
logger.debug "update Roster #{roster.id}:"
|
|
127
|
+
else
|
|
128
|
+
logger.debug "create Roster:"
|
|
129
|
+
roster = Roster.new
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
roster_attribs = {
|
|
133
|
+
pos: pos,
|
|
134
|
+
person_id: person.id,
|
|
135
|
+
team_id: @team.id,
|
|
136
|
+
event_id: @event.id # NB: reuse/fallthrough from races - make sure load_races goes first (to setup event)
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
logger.debug roster_attribs.to_json
|
|
140
|
+
|
|
141
|
+
roster.update_attributes!( roster_attribs )
|
|
142
|
+
end # lines.each
|
|
143
|
+
|
|
144
|
+
end # method read_worker
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
end # class NationTeamReader
|
|
148
|
+
end # module SportDb
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
module SportDb
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
### squad/roster reader for races
|
|
7
|
+
class RaceTeamReader
|
|
7
8
|
|
|
8
9
|
include LogUtils::Logging
|
|
9
10
|
|
|
@@ -44,13 +45,13 @@ class RosterReader
|
|
|
44
45
|
@known_persons = TextUtils.build_title_table_for( Person.all )
|
|
45
46
|
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
read_worker( reader )
|
|
48
49
|
|
|
49
50
|
Prop.create_from_fixture!( name, path )
|
|
50
51
|
end
|
|
51
52
|
|
|
52
53
|
|
|
53
|
-
def
|
|
54
|
+
def read_worker( reader )
|
|
54
55
|
|
|
55
56
|
reader.each_line do |line|
|
|
56
57
|
logger.debug " line: >#{line}<"
|
|
@@ -91,8 +92,8 @@ class RosterReader
|
|
|
91
92
|
roster.update_attributes!( roster_attribs )
|
|
92
93
|
end # lines.each
|
|
93
94
|
|
|
94
|
-
end # method
|
|
95
|
+
end # method read_worker
|
|
95
96
|
|
|
96
97
|
|
|
97
|
-
end # class
|
|
98
|
+
end # class RaceTeamReader
|
|
98
99
|
end # module SportDb
|
data/lib/sportdb/version.rb
CHANGED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#############################
|
|
2
|
+
# Germany / Deutschland
|
|
3
|
+
|
|
4
|
+
## GK
|
|
5
|
+
|
|
6
|
+
Manuel Neuer, 27 Mar 1986 ## Germany Bayern Munich
|
|
7
|
+
Ron-Robert Zieler, 12 Feb 1989 ## Germany Hannover 96
|
|
8
|
+
Roman Weidenfeller, 6 Aug 1980 ## Germany Borussia Dortmund
|
|
9
|
+
|
|
10
|
+
## DF
|
|
11
|
+
|
|
12
|
+
Philipp Lahm, 11 Nov 1983 ## Germany Bayern Munich
|
|
13
|
+
Per Mertesacker, 29 Sep 1984 ## Germany Arsenal
|
|
14
|
+
Jérôme Boateng, 3 Sep1988 ## Germany Bayern Munich
|
|
15
|
+
Mats Hummels, 16 Dec1988 ## Germany Borussia Dortmund
|
|
16
|
+
Benedikt Höwedes, 29 Feb 1988 ## Germany Schalke 04
|
|
17
|
+
Marcel Schmelzer, 22 Jan1988 ## Germany Borussia Dortmund
|
|
18
|
+
Kevin Großkreutz, 19 Jul 1988 ## Germany Borussia Dortmund
|
|
19
|
+
Matthias Ginter, 19 Jan 1994 ## Germany SC Freiburg
|
|
20
|
+
Shkodran Mustafi, 17 Apr 1992 ## Italy Sampdoria
|
|
21
|
+
Erik Durm, 12 May 1992 ## Germany Borussia Dortmund
|
|
22
|
+
|
|
23
|
+
## MF
|
|
24
|
+
|
|
25
|
+
Bastian Schweinsteiger, 1 Aug 1984 ## Germany Bayern Munich
|
|
26
|
+
Mesut Özil, 15 Oct 1988 ## England Arsenal
|
|
27
|
+
Sami Khedira, 4 Apr 1987 ## Spain Real Madrid
|
|
28
|
+
Toni Kroos, 4 Jan 1990 ## Germany Bayern Munich
|
|
29
|
+
Mario Götze, 3 Jun 1992 ## Germany Bayern Munich
|
|
30
|
+
Lars Bender, 27 Apr 1989 ## Germany Bayer Leverkusen
|
|
31
|
+
Julian Draxler, 20 Sep 1993 ## Germany Schalke 04
|
|
32
|
+
Christoph Kramer, 12 Feb 1991 ## Germany Borussia Mönchengladbach
|
|
33
|
+
|
|
34
|
+
## FW
|
|
35
|
+
|
|
36
|
+
Miroslav Klose, 9 Jun 1978 ## Italy Lazio
|
|
37
|
+
Lukas Podolski, 4 Jun 1985 ## England Arsenal
|
|
38
|
+
André Schürrle, 6 Nov 1990 ## England Chelsea
|
|
39
|
+
Marco Reus, 31 May 1989 ## Germany Borussia Dortmund
|
|
40
|
+
Thomas Müller, 13 Sep 1989 ## Germany Bayern Munich
|
|
41
|
+
Kevin Volland, 30 Jul 1992 ## Germany 1899 Hoffenheim
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#############
|
|
2
|
+
# Brazil
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# NB: let official (player) shirt name go first (e.g. Neymar Jr)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## GK / Goalkeepers
|
|
9
|
+
|
|
10
|
+
Jefferson|Jefferson DE OLIVEIRA GALVAO, 2 Jan 1983, 190
|
|
11
|
+
Júlio César|Júlio César SOARES DE ESPINDOLA, 3 Sep 1979, 186
|
|
12
|
+
D. Cavalieri|Diego CAVALIERI, 1 Dec 1982, 189
|
|
13
|
+
Victor, 21 Jan 1983 ## Brazil Atlético Mineiro
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## DF / Defenders
|
|
17
|
+
|
|
18
|
+
Dani Alves|Daniel ALVES|Daniel ALVES DA SILVA, 6 May 1983, 172
|
|
19
|
+
T. Silva|Thiago SILVA|Thiago EMILIANO DA SILVA, 22 Sep 1984, 183
|
|
20
|
+
David Luiz|David Luiz MOREIRA MARINHO, 22 Apr 1987, 189
|
|
21
|
+
Marcelo|Marcelo VIEIRA DA SILVA JUNIOR, 12 May 1988, 174
|
|
22
|
+
Dante|Dante BONFIM COSTA SANTOS, 18 Oct 1983, 188
|
|
23
|
+
Filipe Luís|Filipe Luís KASMIRSKI, 9 Aug 1985, 182
|
|
24
|
+
Réver|Réver Humberto ALVES ARAUJO, 4 Jan 1985, 192
|
|
25
|
+
Maicon, 26 Jul 1981 ## Italy Roma
|
|
26
|
+
Maxwell, 27 Aug 1981 ## France Paris Saint-Germain
|
|
27
|
+
Henrique, 14 Oct 1986 ## Italy Napoli
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## MF / Midfielders
|
|
31
|
+
|
|
32
|
+
Fernando|Fernando Lucas MARTINS, 3 Mar 1992, 175
|
|
33
|
+
Lucas|Lucas RODRIGUES MOURA SILVA, 13 Aug 1992, 173
|
|
34
|
+
Hernanes|Anderson Hernanes DE CARVALHO VIANA LIMA, 29 May 1985, 180
|
|
35
|
+
Oscar|Oscar DOS SANTOS EMBOABA JUNIOR, 9 Sep 1991, 180
|
|
36
|
+
Jean|Jean Raphael VANDERLEI MOREIRA, 24 Jun 1986, 170
|
|
37
|
+
L. Gustavo|Luiz Gustavo|Luiz Gustavo DIAS, 23 Jul 1987, 186
|
|
38
|
+
Paulinho|José Paulo BEZERRA MACIEL JUNIOR, 25 Jul 1988, 182
|
|
39
|
+
Bernard|Bernard ANICIO CALDEIRA DUARTE, 8 Sep 1992, 164
|
|
40
|
+
Jádson|Jádson RODRIGUES, 5 Oct 1983, 169
|
|
41
|
+
Ramires, 24 Mar 1987 ## England Chelsea
|
|
42
|
+
Fernandinho, 4 May 1985 ## England Manchester City
|
|
43
|
+
Willian, 9 Aug 1988 ## England Chelsea
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## FW / Forwards
|
|
47
|
+
|
|
48
|
+
Fred|Frederico CHAVES GUEDES, 3 Oct 1983, 185
|
|
49
|
+
Neymar Jr|Neymar|Neymar DA SILVA SANTOS JUNIOR, 5 Feb 1992, 174
|
|
50
|
+
Hulk|Givanildo VIEIRA DE SOUSA, 25 Jul 1986, 180
|
|
51
|
+
Jô|João Alves de Assis Silva, 20 Mar 1987
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
##################################
|
|
2
|
+
# World Cup 2014 Brazil
|
|
3
|
+
|
|
4
|
+
league: world
|
|
5
|
+
season: 2014
|
|
6
|
+
start_at: 2014-06-12
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
######
|
|
10
|
+
# 32 Teams
|
|
11
|
+
#
|
|
12
|
+
# Europe (UEFA): 13 places
|
|
13
|
+
# Africa (CAF): 5 places
|
|
14
|
+
# Asia (AFC): 4 places
|
|
15
|
+
# South America (CONMEBOL) 5 places (+ Brazil qualified automatically as host nation for a total of 5 or 6 places)
|
|
16
|
+
# North, Central American and Caribbean (CONCACAF): 4 places
|
|
17
|
+
# Oceania (OFC): 0
|
|
18
|
+
#
|
|
19
|
+
# see en.wikipedia.org/wiki/2014_FIFA_World_Cup_qualification
|
|
20
|
+
|
|
21
|
+
# teams:
|
|
22
|
+
#- nga # Nigeria -- Africa (5)
|
|
23
|
+
#- civ # Côte d'Ivoire
|
|
24
|
+
#- cmr # Cameroon
|
|
25
|
+
#- gha # Ghana
|
|
26
|
+
#- alg # Algeria
|
|
27
|
+
#- aus # Australia -- Asia (4) includes Australia
|
|
28
|
+
#- irn # Iran
|
|
29
|
+
#- jpn # Japan
|
|
30
|
+
#- kor # South Korea
|
|
31
|
+
#- crc # Costa Rica -- North, Central American and Caribbean (4)
|
|
32
|
+
#- usa # United States
|
|
33
|
+
#- hon # Honduras
|
|
34
|
+
#- mex # Mexico
|
|
35
|
+
#- bra # Brazil -- South America (5+1)
|
|
36
|
+
#- arg # Argentina
|
|
37
|
+
#- col # Colombia
|
|
38
|
+
#- chi # Chile
|
|
39
|
+
#- ecu # Ecuador
|
|
40
|
+
#- uru # Uruguay
|
|
41
|
+
#- bel # Belgium -- Europe (13)
|
|
42
|
+
#- ger # Germany
|
|
43
|
+
#- ita # Italy
|
|
44
|
+
#- ned # Netherlands
|
|
45
|
+
#- sui # Switzerland
|
|
46
|
+
#- bih # Bosnia and Herzegovina
|
|
47
|
+
#- rus # Russia
|
|
48
|
+
#- esp # Spain
|
|
49
|
+
#- eng # England
|
|
50
|
+
#- gre # Greece
|
|
51
|
+
#- cro # Croatia
|
|
52
|
+
#- por # Portugal
|
|
53
|
+
#- fra # France
|
|
54
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
##############################
|
|
2
|
+
# Brazil - World Cup 2014
|
|
3
|
+
#
|
|
4
|
+
# Coaching Staff
|
|
5
|
+
# - Head Coach: Luiz Felipe Scolari
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
####################
|
|
9
|
+
# GK / Goal Keepers
|
|
10
|
+
|
|
11
|
+
Jefferson ## Botafogo
|
|
12
|
+
Julio César ## Toronto F.C
|
|
13
|
+
Victor ## Atlético-MG
|
|
14
|
+
|
|
15
|
+
####################
|
|
16
|
+
# DF / Defenders
|
|
17
|
+
|
|
18
|
+
Dante (Bayern de Munique)
|
|
19
|
+
David Luiz (Chelsea)
|
|
20
|
+
Henrique (Napoli)
|
|
21
|
+
Thiago Silva (Paris Saint-Germain)
|
|
22
|
+
Daniel Alves (Barcelona)
|
|
23
|
+
Maicon (Roma)
|
|
24
|
+
Marcelo (Real Madrid)
|
|
25
|
+
Maxwell (PSG)
|
|
26
|
+
|
|
27
|
+
####################
|
|
28
|
+
# MF / Midfielders
|
|
29
|
+
|
|
30
|
+
Fernandinho (Manchester City)
|
|
31
|
+
Hernanes (Inter de Milão)
|
|
32
|
+
Luiz Gustavo (Wolfsburg)
|
|
33
|
+
Oscar (Chelsea)
|
|
34
|
+
Paulinho (Tottenham)
|
|
35
|
+
Ramires (Chelsea)
|
|
36
|
+
Willian (Chelsea)
|
|
37
|
+
|
|
38
|
+
####################
|
|
39
|
+
# FW / Forwards
|
|
40
|
+
|
|
41
|
+
Bernard (Shakhtar)
|
|
42
|
+
Fred (Fluminense)
|
|
43
|
+
Hulk (Zenit)
|
|
44
|
+
Jô (Atlético-MG)
|
|
45
|
+
Neymar (Barcelona)
|
|
46
|
+
|
data/test/helper.rb
CHANGED
|
@@ -23,19 +23,25 @@ League = SportDb::Model::League
|
|
|
23
23
|
Season = SportDb::Model::Season
|
|
24
24
|
Event = SportDb::Model::Event
|
|
25
25
|
Team = SportDb::Model::Team
|
|
26
|
+
Roster = SportDb::Model::Roster
|
|
26
27
|
|
|
27
28
|
Round = SportDb::Model::Round
|
|
28
29
|
Game = SportDb::Model::Game
|
|
29
30
|
GameCursor = SportDb::Model::GameCursor
|
|
30
31
|
|
|
32
|
+
|
|
31
33
|
####################
|
|
32
34
|
# Reader shortcuts
|
|
33
35
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
Reader = SportDb::Reader
|
|
37
|
+
TeamReader = SportDb::TeamReader
|
|
38
|
+
SeasonReader = SportDb::SeasonReader
|
|
39
|
+
LeagueReader = SportDb::LeagueReader
|
|
40
|
+
GameReader = SportDb::GameReader
|
|
41
|
+
NationalTeamReader = SportDb::NationalTeamReader
|
|
42
|
+
RaceTeamReader = SportDb::RaceTeamReader
|
|
38
43
|
|
|
44
|
+
PersonReader = PersonDb::PersonReader
|
|
39
45
|
|
|
40
46
|
#################################
|
|
41
47
|
# setup db -> schema / tables
|
data/test/test_load.rb
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
###
|
|
4
|
+
# to run use
|
|
5
|
+
# ruby -I ./lib -I ./test test/test_load.rb
|
|
6
|
+
# or better
|
|
7
|
+
# rake -I ./lib test
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require 'helper'
|
|
11
|
+
|
|
12
|
+
class TestLoad < MiniTest::Unit::TestCase
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
WorldDb.delete!
|
|
16
|
+
SportDb.delete!
|
|
17
|
+
PersonDb.delete!
|
|
18
|
+
SportDb.read_builtin # add 2014 season
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def test_br
|
|
23
|
+
br = Country.create!( key: 'br', title: 'Brazil', code: 'BRA', pop: 1, area: 1)
|
|
24
|
+
bra = Team.create!( key: 'bra', title: 'Brazil', code: 'BRA', country_id: br.id )
|
|
25
|
+
|
|
26
|
+
reader = Reader.new( SportDb.test_data_path )
|
|
27
|
+
|
|
28
|
+
## fix: add to country_matcher - allow players/br-brazil.txt e.g. country encode in file
|
|
29
|
+
reader.load( 'players/south-america/br-brazil/players' )
|
|
30
|
+
assert_equal 30, Person.count
|
|
31
|
+
|
|
32
|
+
reader.load( 'world-cup/leagues' )
|
|
33
|
+
assert_equal 1, League.count
|
|
34
|
+
reader.load( 'world-cup/2014/cup' )
|
|
35
|
+
assert_equal 1, Event.count
|
|
36
|
+
|
|
37
|
+
reader.load( 'world-cup/2014/squads/br-brazil' )
|
|
38
|
+
assert_equal 23, Roster.count
|
|
39
|
+
end # method test_br
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def test_de
|
|
43
|
+
de = Country.create!( key: 'de', title: 'Germany', code: 'GER', pop: 1, area: 1)
|
|
44
|
+
ger = Team.create!( key: 'ger', title: 'Germany', code: 'GER', country_id: de.id )
|
|
45
|
+
|
|
46
|
+
reader = Reader.new( SportDb.test_data_path )
|
|
47
|
+
|
|
48
|
+
reader.load( 'players/europe/de-deutschland/players' )
|
|
49
|
+
assert_equal 27, Person.count
|
|
50
|
+
|
|
51
|
+
reader.load( 'world-cup/leagues' )
|
|
52
|
+
assert_equal 1, League.count
|
|
53
|
+
reader.load( 'world-cup/2014/cup' )
|
|
54
|
+
assert_equal 1, Event.count
|
|
55
|
+
|
|
56
|
+
reader.load( 'world-cup/2014/squads/de-deutschland' )
|
|
57
|
+
assert_equal 3, Roster.count
|
|
58
|
+
end # method test_de
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
end # class TestLoad
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
###
|
|
4
|
+
# to run use
|
|
5
|
+
# ruby -I ./lib -I ./test test/test_national_team_reader.rb
|
|
6
|
+
# or better
|
|
7
|
+
# rake -I ./lib test
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
require 'helper'
|
|
11
|
+
|
|
12
|
+
class TestNationalTeamReader < MiniTest::Unit::TestCase
|
|
13
|
+
|
|
14
|
+
def setup
|
|
15
|
+
WorldDb.delete!
|
|
16
|
+
SportDb.delete!
|
|
17
|
+
PersonDb.delete!
|
|
18
|
+
|
|
19
|
+
add_world_cup_2014
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def add_world_cup_2014
|
|
23
|
+
SportDb.read_builtin # add 2014 season
|
|
24
|
+
|
|
25
|
+
leaguereader = LeagueReader.new( SportDb.test_data_path )
|
|
26
|
+
leaguereader.read( 'world-cup/leagues' )
|
|
27
|
+
|
|
28
|
+
assert_equal 1, League.count
|
|
29
|
+
|
|
30
|
+
l = League.find_by_key!( 'world' )
|
|
31
|
+
assert_equal 'World Cup', l.title
|
|
32
|
+
|
|
33
|
+
gamereader = GameReader.new( SportDb.test_data_path )
|
|
34
|
+
gamereader.read( 'world-cup/2014/cup' )
|
|
35
|
+
|
|
36
|
+
assert_equal 1, Event.count
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_br
|
|
40
|
+
br = Country.create!( key: 'br', title: 'Brazil', code: 'BRA', pop: 1, area: 1)
|
|
41
|
+
|
|
42
|
+
## read persons
|
|
43
|
+
personreader = PersonReader.new( SportDb.test_data_path )
|
|
44
|
+
personreader.read( 'players/south-america/br-brazil/players', country_id: br.id )
|
|
45
|
+
|
|
46
|
+
assert_equal 30, Person.count
|
|
47
|
+
|
|
48
|
+
bra = Team.create!( key: 'bra', title: 'Brazil', code: 'BRA', country_id: br.id )
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
event = Event.find_by_key!( 'world.2014' )
|
|
52
|
+
|
|
53
|
+
reader = NationalTeamReader.new( SportDb.test_data_path )
|
|
54
|
+
reader.read( 'world-cup/2014/squads/br-brazil', country_id: br.id, event_id: event.id )
|
|
55
|
+
|
|
56
|
+
assert_equal 23, Roster.count
|
|
57
|
+
end # method test_br
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def test_de
|
|
61
|
+
de = Country.create!( key: 'de', title: 'Germany', code: 'GER', pop: 1, area: 1)
|
|
62
|
+
|
|
63
|
+
## read persons
|
|
64
|
+
personreader = PersonReader.new( SportDb.test_data_path )
|
|
65
|
+
personreader.read( 'players/europe/de-deutschland/players', country_id: de.id )
|
|
66
|
+
|
|
67
|
+
assert_equal 27, Person.count
|
|
68
|
+
|
|
69
|
+
ger = Team.create!( key: 'ger', title: 'Germany', code: 'GER', country_id: de.id )
|
|
70
|
+
|
|
71
|
+
event = Event.find_by_key!( 'world.2014' )
|
|
72
|
+
|
|
73
|
+
reader = NationalTeamReader.new( SportDb.test_data_path )
|
|
74
|
+
reader.read( 'world-cup/2014/squads/de-deutschland', country_id: de.id, event_id: event.id )
|
|
75
|
+
|
|
76
|
+
assert_equal 3, Roster.count
|
|
77
|
+
end # method test_de
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
end # class TestNationalTeamReader
|
metadata
CHANGED
|
@@ -1,183 +1,148 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sportdb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.8.
|
|
4
|
+
version: 1.8.24
|
|
5
|
+
prerelease:
|
|
5
6
|
platform: ruby
|
|
6
7
|
authors:
|
|
7
8
|
- Gerald Bauer
|
|
8
9
|
autorequire:
|
|
9
10
|
bindir: bin
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date: 2014-05-
|
|
12
|
+
date: 2014-05-22 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
15
|
name: props
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: &77540830 !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
16
18
|
requirements:
|
|
17
19
|
- - ! '>='
|
|
18
20
|
- !ruby/object:Gem::Version
|
|
19
21
|
version: '0'
|
|
20
22
|
type: :runtime
|
|
21
23
|
prerelease: false
|
|
22
|
-
version_requirements:
|
|
23
|
-
requirements:
|
|
24
|
-
- - ! '>='
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0'
|
|
24
|
+
version_requirements: *77540830
|
|
27
25
|
- !ruby/object:Gem::Dependency
|
|
28
26
|
name: logutils
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
27
|
+
requirement: &77563220 !ruby/object:Gem::Requirement
|
|
28
|
+
none: false
|
|
30
29
|
requirements:
|
|
31
30
|
- - ! '>='
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
32
|
version: '0'
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
|
-
version_requirements:
|
|
37
|
-
requirements:
|
|
38
|
-
- - ! '>='
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
35
|
+
version_requirements: *77563220
|
|
41
36
|
- !ruby/object:Gem::Dependency
|
|
42
37
|
name: textutils
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
38
|
+
requirement: &77562470 !ruby/object:Gem::Requirement
|
|
39
|
+
none: false
|
|
44
40
|
requirements:
|
|
45
41
|
- - ! '>='
|
|
46
42
|
- !ruby/object:Gem::Version
|
|
47
43
|
version: '0'
|
|
48
44
|
type: :runtime
|
|
49
45
|
prerelease: false
|
|
50
|
-
version_requirements:
|
|
51
|
-
requirements:
|
|
52
|
-
- - ! '>='
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
46
|
+
version_requirements: *77562470
|
|
55
47
|
- !ruby/object:Gem::Dependency
|
|
56
48
|
name: worlddb
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
requirement: &77561520 !ruby/object:Gem::Requirement
|
|
50
|
+
none: false
|
|
58
51
|
requirements:
|
|
59
52
|
- - ! '>='
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
61
54
|
version: 2.0.2
|
|
62
55
|
type: :runtime
|
|
63
56
|
prerelease: false
|
|
64
|
-
version_requirements:
|
|
65
|
-
requirements:
|
|
66
|
-
- - ! '>='
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: 2.0.2
|
|
57
|
+
version_requirements: *77561520
|
|
69
58
|
- !ruby/object:Gem::Dependency
|
|
70
59
|
name: tagutils
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
60
|
+
requirement: &77560760 !ruby/object:Gem::Requirement
|
|
61
|
+
none: false
|
|
72
62
|
requirements:
|
|
73
63
|
- - ! '>='
|
|
74
64
|
- !ruby/object:Gem::Version
|
|
75
65
|
version: '0'
|
|
76
66
|
type: :runtime
|
|
77
67
|
prerelease: false
|
|
78
|
-
version_requirements:
|
|
79
|
-
requirements:
|
|
80
|
-
- - ! '>='
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
68
|
+
version_requirements: *77560760
|
|
83
69
|
- !ruby/object:Gem::Dependency
|
|
84
70
|
name: persondb
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirement: &77558250 !ruby/object:Gem::Requirement
|
|
72
|
+
none: false
|
|
86
73
|
requirements:
|
|
87
74
|
- - ! '>='
|
|
88
75
|
- !ruby/object:Gem::Version
|
|
89
76
|
version: '0'
|
|
90
77
|
type: :runtime
|
|
91
78
|
prerelease: false
|
|
92
|
-
version_requirements:
|
|
93
|
-
requirements:
|
|
94
|
-
- - ! '>='
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0'
|
|
79
|
+
version_requirements: *77558250
|
|
97
80
|
- !ruby/object:Gem::Dependency
|
|
98
81
|
name: activerecord-utils
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
82
|
+
requirement: &77556820 !ruby/object:Gem::Requirement
|
|
83
|
+
none: false
|
|
100
84
|
requirements:
|
|
101
85
|
- - ! '>='
|
|
102
86
|
- !ruby/object:Gem::Version
|
|
103
87
|
version: '0'
|
|
104
88
|
type: :runtime
|
|
105
89
|
prerelease: false
|
|
106
|
-
version_requirements:
|
|
107
|
-
requirements:
|
|
108
|
-
- - ! '>='
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0'
|
|
90
|
+
version_requirements: *77556820
|
|
111
91
|
- !ruby/object:Gem::Dependency
|
|
112
92
|
name: fetcher
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
93
|
+
requirement: &77346810 !ruby/object:Gem::Requirement
|
|
94
|
+
none: false
|
|
114
95
|
requirements:
|
|
115
96
|
- - ! '>='
|
|
116
97
|
- !ruby/object:Gem::Version
|
|
117
98
|
version: '0.3'
|
|
118
99
|
type: :runtime
|
|
119
100
|
prerelease: false
|
|
120
|
-
version_requirements:
|
|
121
|
-
requirements:
|
|
122
|
-
- - ! '>='
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0.3'
|
|
101
|
+
version_requirements: *77346810
|
|
125
102
|
- !ruby/object:Gem::Dependency
|
|
126
103
|
name: gli
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
104
|
+
requirement: &77369960 !ruby/object:Gem::Requirement
|
|
105
|
+
none: false
|
|
128
106
|
requirements:
|
|
129
107
|
- - ! '>='
|
|
130
108
|
- !ruby/object:Gem::Version
|
|
131
109
|
version: 2.5.6
|
|
132
110
|
type: :runtime
|
|
133
111
|
prerelease: false
|
|
134
|
-
version_requirements:
|
|
135
|
-
requirements:
|
|
136
|
-
- - ! '>='
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: 2.5.6
|
|
112
|
+
version_requirements: *77369960
|
|
139
113
|
- !ruby/object:Gem::Dependency
|
|
140
114
|
name: activerecord
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
115
|
+
requirement: &77271920 !ruby/object:Gem::Requirement
|
|
116
|
+
none: false
|
|
142
117
|
requirements:
|
|
143
118
|
- - ! '>='
|
|
144
119
|
- !ruby/object:Gem::Version
|
|
145
120
|
version: '0'
|
|
146
121
|
type: :runtime
|
|
147
122
|
prerelease: false
|
|
148
|
-
version_requirements:
|
|
149
|
-
requirements:
|
|
150
|
-
- - ! '>='
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '0'
|
|
123
|
+
version_requirements: *77271920
|
|
153
124
|
- !ruby/object:Gem::Dependency
|
|
154
125
|
name: rdoc
|
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
|
126
|
+
requirement: &77265060 !ruby/object:Gem::Requirement
|
|
127
|
+
none: false
|
|
156
128
|
requirements:
|
|
157
129
|
- - ~>
|
|
158
130
|
- !ruby/object:Gem::Version
|
|
159
131
|
version: '4.0'
|
|
160
132
|
type: :development
|
|
161
133
|
prerelease: false
|
|
162
|
-
version_requirements:
|
|
163
|
-
requirements:
|
|
164
|
-
- - ~>
|
|
165
|
-
- !ruby/object:Gem::Version
|
|
166
|
-
version: '4.0'
|
|
134
|
+
version_requirements: *77265060
|
|
167
135
|
- !ruby/object:Gem::Dependency
|
|
168
136
|
name: hoe
|
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
|
137
|
+
requirement: &77283630 !ruby/object:Gem::Requirement
|
|
138
|
+
none: false
|
|
170
139
|
requirements:
|
|
171
140
|
- - ~>
|
|
172
141
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: '3.
|
|
142
|
+
version: '3.11'
|
|
174
143
|
type: :development
|
|
175
144
|
prerelease: false
|
|
176
|
-
version_requirements:
|
|
177
|
-
requirements:
|
|
178
|
-
- - ~>
|
|
179
|
-
- !ruby/object:Gem::Version
|
|
180
|
-
version: '3.10'
|
|
145
|
+
version_requirements: *77283630
|
|
181
146
|
description: sportdb - sport.db command line tool
|
|
182
147
|
email: opensport@googlegroups.com
|
|
183
148
|
executables:
|
|
@@ -244,9 +209,10 @@ files:
|
|
|
244
209
|
- lib/sportdb/readers/game.rb
|
|
245
210
|
- lib/sportdb/readers/ground.rb
|
|
246
211
|
- lib/sportdb/readers/league.rb
|
|
212
|
+
- lib/sportdb/readers/national_team.rb
|
|
247
213
|
- lib/sportdb/readers/race.rb
|
|
214
|
+
- lib/sportdb/readers/race_team.rb
|
|
248
215
|
- lib/sportdb/readers/record.rb
|
|
249
|
-
- lib/sportdb/readers/roster.rb
|
|
250
216
|
- lib/sportdb/readers/season.rb
|
|
251
217
|
- lib/sportdb/readers/team.rb
|
|
252
218
|
- lib/sportdb/readers/track.rb
|
|
@@ -300,6 +266,8 @@ files:
|
|
|
300
266
|
- test/data/at-austria/leagues.txt
|
|
301
267
|
- test/data/at-austria/teams.txt
|
|
302
268
|
- test/data/at-austria/teams_2.txt
|
|
269
|
+
- test/data/players/europe/de-deutschland/players.txt
|
|
270
|
+
- test/data/players/south-america/br-brazil/players.txt
|
|
303
271
|
- test/data/world-cup/1930/cup.txt
|
|
304
272
|
- test/data/world-cup/1930/cup.yml
|
|
305
273
|
- test/data/world-cup/1954/cup.txt
|
|
@@ -310,6 +278,10 @@ files:
|
|
|
310
278
|
- test/data/world-cup/1974/cup_finals.txt
|
|
311
279
|
- test/data/world-cup/1974/cup_i.txt
|
|
312
280
|
- test/data/world-cup/1974/cup_ii.txt
|
|
281
|
+
- test/data/world-cup/2014/cup.txt
|
|
282
|
+
- test/data/world-cup/2014/cup.yml
|
|
283
|
+
- test/data/world-cup/2014/squads/br-brazil.txt
|
|
284
|
+
- test/data/world-cup/2014/squads/de-deutschland.txt
|
|
313
285
|
- test/data/world-cup/leagues.txt
|
|
314
286
|
- test/data/world-cup/seasons_1930.txt
|
|
315
287
|
- test/data/world-cup/seasons_1954.txt
|
|
@@ -324,6 +296,8 @@ files:
|
|
|
324
296
|
- test/test_cursor.rb
|
|
325
297
|
- test/test_date.rb
|
|
326
298
|
- test/test_lang.rb
|
|
299
|
+
- test/test_load.rb
|
|
300
|
+
- test/test_national_team_reader.rb
|
|
327
301
|
- test/test_reader.rb
|
|
328
302
|
- test/test_round_auto.rb
|
|
329
303
|
- test/test_round_def.rb
|
|
@@ -335,7 +309,6 @@ files:
|
|
|
335
309
|
homepage: https://github.com/geraldb/sport.db.ruby
|
|
336
310
|
licenses:
|
|
337
311
|
- Public Domain
|
|
338
|
-
metadata: {}
|
|
339
312
|
post_install_message: ! '******************************************************************************
|
|
340
313
|
|
|
341
314
|
|
|
@@ -353,30 +326,34 @@ rdoc_options:
|
|
|
353
326
|
require_paths:
|
|
354
327
|
- lib
|
|
355
328
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
329
|
+
none: false
|
|
356
330
|
requirements:
|
|
357
331
|
- - ! '>='
|
|
358
332
|
- !ruby/object:Gem::Version
|
|
359
333
|
version: 1.9.2
|
|
360
334
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
335
|
+
none: false
|
|
361
336
|
requirements:
|
|
362
337
|
- - ! '>='
|
|
363
338
|
- !ruby/object:Gem::Version
|
|
364
339
|
version: '0'
|
|
365
340
|
requirements: []
|
|
366
341
|
rubyforge_project:
|
|
367
|
-
rubygems_version:
|
|
342
|
+
rubygems_version: 1.8.17
|
|
368
343
|
signing_key:
|
|
369
|
-
specification_version:
|
|
344
|
+
specification_version: 3
|
|
370
345
|
summary: sportdb - sport.db command line tool
|
|
371
346
|
test_files:
|
|
372
|
-
- test/test_changes.rb
|
|
373
|
-
- test/test_cursor.rb
|
|
374
347
|
- test/test_date.rb
|
|
375
348
|
- test/test_lang.rb
|
|
376
|
-
- test/
|
|
377
|
-
- test/
|
|
378
|
-
- test/test_round_def.rb
|
|
379
|
-
- test/test_round_header.rb
|
|
349
|
+
- test/test_load.rb
|
|
350
|
+
- test/test_cursor.rb
|
|
380
351
|
- test/test_scores.rb
|
|
381
|
-
- test/test_utils.rb
|
|
382
352
|
- test/test_winner.rb
|
|
353
|
+
- test/test_round_def.rb
|
|
354
|
+
- test/test_utils.rb
|
|
355
|
+
- test/test_round_header.rb
|
|
356
|
+
- test/test_round_auto.rb
|
|
357
|
+
- test/test_national_team_reader.rb
|
|
358
|
+
- test/test_reader.rb
|
|
359
|
+
- test/test_changes.rb
|
checksums.yaml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
SHA1:
|
|
3
|
-
metadata.gz: 7aa8a4205419c3506fc1527e6cf45ca56d4bfcb8
|
|
4
|
-
data.tar.gz: bed9fcb72a3f0f931048afb1c348f4d24a224dc0
|
|
5
|
-
SHA512:
|
|
6
|
-
metadata.gz: 2b16a61eb98bd836272199997275f8dd08989bb2501a8939c961208367566ab8a99cb4198f563b027249523f6ad247a781a65a6f6a0602ae6b7b9ed5b17082cd
|
|
7
|
-
data.tar.gz: 167a8ec86e1b0f8069e6f02ae7eff72fb9acc08ee1b31222d1786f4d3d3f80e55a625f4b50c377528ac57607932edf216964225caffb254adf8e52cacff53ce2
|