sportdb-exporters 0.0.1 → 0.1.1

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
- SHA1:
3
- metadata.gz: 192a963be138b0e03063615abbb95e84d2e2f492
4
- data.tar.gz: a881a0a6845e6265b81c20411eaba1fe3a35fa31
2
+ SHA256:
3
+ metadata.gz: a289ee01d984f64cf52241e61b4f03a6311bd922c557bbe942d8a55bd9bd7e11
4
+ data.tar.gz: 9fc920af6bf8c39a832121daa1c7daddd4af8b846180a345cb88e1b612f309bc
5
5
  SHA512:
6
- metadata.gz: a947f48d8d2b14b360934c7dd2c8cf11b8a086a4dcc57aa7516ddf3e82192fc77dda3c36f28e46bba475e598ffada9abf826779142e30d1e10d25daa34315931
7
- data.tar.gz: b22a856f3a193a9817c4b3f5d1def27d513a1c2ac3c93c10851693032308e27027cfcc96bd42069c762d4413b4b26c3ee87281c02ab350e9cee6f37edec6ac08
6
+ metadata.gz: 84a5a93c6791c3ef677cc3ea699502f40cc313734f87cecd2bd1f5b5d6612761ddde0e6f706e4709e611ccff8e202682bb02fc6c5b07f1fd6de3ebea3667288a
7
+ data.tar.gz: 8c9ccf5dbc761ce3d9d4b87d7eff7295084a20f49b5d5b981b124d11534a3267b5e16763916e143340af1c64b69096e29d787ecaec4c6c21924a00da981fdda4
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ ### 0.1.1
2
+
1
3
  ### 0.0.1 / 2020-09-21
2
4
 
3
5
  * Everything is new. First release.
data/Manifest.txt CHANGED
@@ -4,5 +4,7 @@ README.md
4
4
  Rakefile
5
5
  lib/sportdb/exporters.rb
6
6
  lib/sportdb/exporters/json_exporter.rb
7
- lib/sportdb/exporters/json_exporter_more.rb
7
+ lib/sportdb/exporters/json_exporter_copa.rb
8
+ lib/sportdb/exporters/json_exporter_euro.rb
9
+ lib/sportdb/exporters/json_exporter_worldcup.rb
8
10
  lib/sportdb/exporters/version.rb
data/README.md CHANGED
@@ -5,7 +5,6 @@
5
5
  * bugs :: [github.com/sportdb/sport.db/issues](https://github.com/sportdb/sport.db/issues)
6
6
  * gem :: [rubygems.org/gems/sportdb-exporters](https://rubygems.org/gems/sportdb-exporters)
7
7
  * rdoc :: [rubydoc.info/gems/sportdb-exporters](http://rubydoc.info/gems/sportdb-exporters)
8
- * forum :: [groups.google.com/group/opensport](https://groups.google.com/group/opensport)
9
8
 
10
9
 
11
10
  ## Usage
@@ -15,14 +14,14 @@ TBD
15
14
 
16
15
  ## License
17
16
 
18
- ![](https://publicdomainworks.github.io/buttons/zero88x31.png)
19
-
20
17
  The `sportdb-exporters` scripts are dedicated to the public domain.
21
18
  Use it as you please with no restrictions whatsoever.
22
19
 
23
20
 
21
+
22
+
24
23
  ## Questions? Comments?
25
24
 
26
- Send them along to the
27
- [Open Sports & Friends Forum/Mailing List](http://groups.google.com/group/opensport).
28
- Thanks!
25
+ Yes, you can. More than welcome.
26
+ See [Help & Support »](https://github.com/openfootball/help)
27
+
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ Hoe.spec 'sportdb-exporters' do
11
11
  self.urls = { home: 'https://github.com/sportdb/sport.db' }
12
12
 
13
13
  self.author = 'Gerald Bauer'
14
- self.email = 'opensport@googlegroups.com'
14
+ self.email = 'gerald.bauer@gmail.com'
15
15
 
16
16
  # switch extension to .markdown for gihub formatting
17
17
  self.readme_file = 'README.md'
@@ -48,7 +48,7 @@ def self.export( league_key, out_root: )
48
48
 
49
49
  out_dir = "#{out_root}/#{season_basename}"
50
50
  ## make sure folders exist
51
- FileUtils.mkdir_p( out_dir ) unless Dir.exists?( out_dir )
51
+ FileUtils.mkdir_p( out_dir ) unless Dir.exist?( out_dir )
52
52
 
53
53
  ### note:
54
54
  ## skip teams for now if no teams on "top-level"
@@ -222,11 +222,16 @@ def self.build_goals( match )
222
222
  g = { name: goal.person.name,
223
223
  minute: goal.minute,
224
224
  }
225
+
225
226
  g[:offset] = goal.offset if goal.offset != 0
226
- g[:score1] = goal.score1
227
- g[:score2] = goal.score2
228
227
  g[:penalty] = goal.penalty if goal.penalty
229
228
  g[:owngoal] = goal.owngoal if goal.owngoal
229
+
230
+ =begin
231
+ g[:score1] = goal.score1
232
+ g[:score2] = goal.score2
233
+ =end
234
+
230
235
  goals << g
231
236
  end
232
237
  [goals1, goals2]
@@ -0,0 +1,221 @@
1
+ module SportDb
2
+ class JsonExporter
3
+
4
+
5
+
6
+ def self.export_copa( league_key, out_root: )
7
+
8
+ league = Model::League.find_by_key!( league_key )
9
+
10
+ league.events.each do |event|
11
+ puts "** event:"
12
+ pp event.name
13
+ pp event.season
14
+ pp event.league
15
+ puts "teams.count: #{event.teams.count}"
16
+ puts "rounds.count: #{event.rounds.count}"
17
+ puts "groups.count: #{event.groups.count}"
18
+ puts "grounds.count: #{event.grounds.count}"
19
+
20
+
21
+ grounds = []
22
+ event.grounds.each do |ground|
23
+ grounds << { key: ground.key,
24
+ name: ground.name,
25
+ capacity: ground.capacity,
26
+ city: ground.city.name,
27
+ # timezone: 'UTC+1' ## use summertime (CEST+2) why? why not?
28
+ }
29
+ end
30
+
31
+ hash_grounds = {
32
+ name: event.name,
33
+ stadiums: grounds
34
+ }
35
+
36
+ pp hash_grounds
37
+
38
+
39
+ teams = []
40
+ event.teams.each do |team|
41
+ t = { name: team.name,
42
+ code: team.code }
43
+ teams << t
44
+ end
45
+
46
+ hash_teams = {
47
+ name: event.name,
48
+ teams: teams
49
+ }
50
+
51
+ pp hash_teams
52
+
53
+
54
+ standings = []
55
+ event.groups.each do |group|
56
+ entries = []
57
+ group_standing = Model::GroupStanding.find_by( group_id: group.id )
58
+ if group_standing
59
+ group_standing.entries.each do |entry|
60
+ entries << { team: { name: entry.team.name, code: entry.team.code },
61
+ pos: entry.pos,
62
+ played: entry.played,
63
+ won: entry.won,
64
+ drawn: entry.drawn,
65
+ lost: entry.lost,
66
+ goals_for: entry.goals_for,
67
+ goals_against: entry.goals_against,
68
+ pts: entry.pts
69
+ }
70
+ end
71
+ end
72
+ standings << { name: group.name, standings: entries }
73
+ end
74
+
75
+ hash_standings = {
76
+ name: event.name,
77
+ groups: standings
78
+ }
79
+
80
+ pp hash_standings
81
+
82
+
83
+ groups = []
84
+ event.groups.each do |group|
85
+ teams = []
86
+ group.teams.each do |team|
87
+ teams << { name: team.name,
88
+ code: team.code
89
+ }
90
+ end
91
+ groups << { name: group.name, teams: teams }
92
+ end
93
+
94
+ hash_groups = {
95
+ name: event.name,
96
+ groups: groups
97
+ }
98
+
99
+ pp hash_groups
100
+
101
+
102
+ rounds = []
103
+ event.rounds.each do |round|
104
+ matches = []
105
+ round.matches.each do |game|
106
+ m = { num: game.num || game.pos, ## use id - why? why not?
107
+ date: game.date.strftime( '%Y-%m-%d'),
108
+ time: game.time, ## note: time is stored as string!!!
109
+ team1: {
110
+ name: game.team1.name,
111
+ code: game.team1.code
112
+ },
113
+ team2: {
114
+ name: game.team2.name,
115
+ code: game.team2.code
116
+ },
117
+ }
118
+
119
+ score = {}
120
+
121
+ if game.score1
122
+ score[:ft] = [game.score1,
123
+ game.score2]
124
+ if game.score1i
125
+ # half time / first third (opt)
126
+ # half time - team 2
127
+ score[:ht] = [game.score1i,
128
+ game.score2i]
129
+ end
130
+ end
131
+
132
+ ## note: change do NOT check for knockout flag
133
+ ## check for scores for now
134
+ if game.score1et
135
+ # extratime - team 1 (opt)
136
+ # extratime - team 2 (opt)
137
+ score[:et] = [game.score1et,
138
+ game.score2et]
139
+ if game.score1p
140
+ # penalty - team 1 (opt)
141
+ # penalty - team 2 (opt) elfmeter (opt)
142
+ score[:p] = [game.score1p,
143
+ game.score2p
144
+ ]
145
+ end
146
+ end
147
+
148
+ m[:score] = score
149
+
150
+ # m[ :knockout ] = game.knockout
151
+
152
+
153
+ unless game.goals.empty?
154
+ goals1, goals2 = build_goals( game )
155
+ m[ :goals1 ] = goals1
156
+ m[ :goals2 ] = goals2
157
+ end
158
+
159
+ if game.group
160
+ m[ :group ] = game.group.name
161
+ end
162
+
163
+ if game.ground
164
+ m[ :stadium ] = { key: game.ground.key, name: game.ground.name }
165
+ m[ :city ] = game.ground.city.name
166
+ # m[ :timezone ] = 'UTC+1' ## use summertime (CEST+2) why? why not?
167
+ end
168
+
169
+ matches << m
170
+ end
171
+
172
+ rounds << { name: round.name, matches: matches }
173
+ end
174
+
175
+ hash_matches = {
176
+ name: event.name,
177
+ rounds: rounds
178
+ }
179
+
180
+ pp hash_matches
181
+
182
+
183
+ ## build path e.g.
184
+ ## 2014-15/at.1.clubs.json
185
+ ## 2018/worldcup.teams.json
186
+
187
+ ## -- check for remapping (e.g. add .1); if not found use league key as is
188
+ ## league_basename = event.league.key
189
+ league_basename = 'copa' ## use copa (not southamerica) for now - why? why not?
190
+
191
+ season_basename = event.season.name.sub('/', '-') ## e.g. change 2014/15 to 2014-15
192
+
193
+
194
+ out_dir = "#{out_root}/#{season_basename}"
195
+ ## make sure folders exist
196
+ FileUtils.mkdir_p( out_dir ) unless Dir.exist?( out_dir )
197
+
198
+ File.open( "#{out_dir}/#{league_basename}.stadiums.json", 'w' ) do |f|
199
+ f.write JSON.pretty_generate( hash_grounds )
200
+ end
201
+
202
+ File.open( "#{out_dir}/#{league_basename}.teams.json", 'w' ) do |f|
203
+ f.write JSON.pretty_generate( hash_teams )
204
+ end
205
+
206
+ File.open( "#{out_dir}/#{league_basename}.groups.json", 'w' ) do |f|
207
+ f.write JSON.pretty_generate( hash_groups )
208
+ end
209
+
210
+ File.open( "#{out_dir}/#{league_basename}.standings.json", 'w' ) do |f|
211
+ f.write JSON.pretty_generate( hash_standings )
212
+ end
213
+
214
+ File.open( "#{out_dir}/#{league_basename}.json", 'w' ) do |f|
215
+ f.write JSON.pretty_generate( hash_matches )
216
+ end
217
+ end
218
+ end
219
+
220
+ end # class Json Exporter
221
+ end # module SportDb
@@ -0,0 +1,220 @@
1
+ module SportDb
2
+ class JsonExporter
3
+
4
+
5
+
6
+ def self.export_euro( league_key, out_root: )
7
+
8
+ league = Model::League.find_by_key!( league_key )
9
+
10
+ league.events.each do |event|
11
+ puts "** event:"
12
+ pp event.name
13
+ pp event.season
14
+ pp event.league
15
+ puts "teams.count: #{event.teams.count}"
16
+ puts "rounds.count: #{event.rounds.count}"
17
+ puts "groups.count: #{event.groups.count}"
18
+ puts "grounds.count: #{event.grounds.count}"
19
+
20
+
21
+ grounds = []
22
+ event.grounds.each do |ground|
23
+ grounds << { key: ground.key,
24
+ name: ground.name,
25
+ capacity: ground.capacity,
26
+ city: ground.city.name,
27
+ timezone: 'UTC+1' ## use summertime (CEST+2) why? why not?
28
+ }
29
+ end
30
+
31
+ hash_grounds = {
32
+ name: event.name,
33
+ stadiums: grounds
34
+ }
35
+
36
+ pp hash_grounds
37
+
38
+
39
+ teams = []
40
+ event.teams.each do |team|
41
+ t = { name: team.name,
42
+ code: team.code }
43
+ teams << t
44
+ end
45
+
46
+ hash_teams = {
47
+ name: event.name,
48
+ teams: teams
49
+ }
50
+
51
+ pp hash_teams
52
+
53
+
54
+ standings = []
55
+ event.groups.each do |group|
56
+ entries = []
57
+ group_standing = Model::GroupStanding.find_by( group_id: group.id )
58
+ if group_standing
59
+ group_standing.entries.each do |entry|
60
+ entries << { team: { name: entry.team.name, code: entry.team.code },
61
+ pos: entry.pos,
62
+ played: entry.played,
63
+ won: entry.won,
64
+ drawn: entry.drawn,
65
+ lost: entry.lost,
66
+ goals_for: entry.goals_for,
67
+ goals_against: entry.goals_against,
68
+ pts: entry.pts
69
+ }
70
+ end
71
+ end
72
+ standings << { name: group.name, standings: entries }
73
+ end
74
+
75
+ hash_standings = {
76
+ name: event.name,
77
+ groups: standings
78
+ }
79
+
80
+ pp hash_standings
81
+
82
+
83
+ groups = []
84
+ event.groups.each do |group|
85
+ teams = []
86
+ group.teams.each do |team|
87
+ teams << { name: team.name,
88
+ code: team.code
89
+ }
90
+ end
91
+ groups << { name: group.name, teams: teams }
92
+ end
93
+
94
+ hash_groups = {
95
+ name: event.name,
96
+ groups: groups
97
+ }
98
+
99
+ pp hash_groups
100
+
101
+
102
+ rounds = []
103
+ event.rounds.each do |round|
104
+ matches = []
105
+ round.matches.each do |game|
106
+ m = { num: game.num || game.pos, ## use id - why? why not?
107
+ date: game.date.strftime( '%Y-%m-%d'),
108
+ time: game.time, ## note: time is stored as string!!!
109
+ team1: {
110
+ name: game.team1.name,
111
+ code: game.team1.code
112
+ },
113
+ team2: {
114
+ name: game.team2.name,
115
+ code: game.team2.code
116
+ },
117
+ }
118
+
119
+ score = {}
120
+
121
+ if game.score1
122
+ score[:ft] = [game.score1,
123
+ game.score2]
124
+ if game.score1i
125
+ # half time / first third (opt)
126
+ # half time - team 2
127
+ score[:ht] = [game.score1i,
128
+ game.score2i]
129
+ end
130
+ end
131
+
132
+ ## note: change do NOT check for knockout flag
133
+ ## check for scores for now
134
+ if game.score1et
135
+ # extratime - team 1 (opt)
136
+ # extratime - team 2 (opt)
137
+ score[:et] = [game.score1et,
138
+ game.score2et]
139
+ if game.score1p
140
+ # penalty - team 1 (opt)
141
+ # penalty - team 2 (opt) elfmeter (opt)
142
+ score[:p] = [game.score1p,
143
+ game.score2p
144
+ ]
145
+ end
146
+ end
147
+
148
+ m[:score] = score
149
+
150
+ # m[ :knockout ] = game.knockout
151
+
152
+
153
+ unless game.goals.empty?
154
+ goals1, goals2 = build_goals( game )
155
+ m[ :goals1 ] = goals1
156
+ m[ :goals2 ] = goals2
157
+ end
158
+
159
+ if game.group
160
+ m[ :group ] = game.group.name
161
+ end
162
+
163
+ if game.ground
164
+ m[ :stadium ] = { key: game.ground.key, name: game.ground.name }
165
+ m[ :city ] = game.ground.city.name
166
+ m[ :timezone ] = 'UTC+1' ## use summertime (CEST+2) why? why not?
167
+ end
168
+
169
+ matches << m
170
+ end
171
+
172
+ rounds << { name: round.name, matches: matches }
173
+ end
174
+
175
+ hash_matches = {
176
+ name: event.name,
177
+ rounds: rounds
178
+ }
179
+
180
+ pp hash_matches
181
+
182
+
183
+ ## build path e.g.
184
+ ## 2014-15/at.1.clubs.json
185
+ ## 2018/worldcup.teams.json
186
+
187
+ ## -- check for remapping (e.g. add .1); if not found use league key as is
188
+ league_basename = event.league.key
189
+
190
+ season_basename = event.season.name.sub('/', '-') ## e.g. change 2014/15 to 2014-15
191
+
192
+
193
+ out_dir = "#{out_root}/#{season_basename}"
194
+ ## make sure folders exist
195
+ FileUtils.mkdir_p( out_dir ) unless Dir.exist?( out_dir )
196
+
197
+ File.open( "#{out_dir}/#{league_basename}.stadiums.json", 'w' ) do |f|
198
+ f.write JSON.pretty_generate( hash_grounds )
199
+ end
200
+
201
+ File.open( "#{out_dir}/#{league_basename}.teams.json", 'w' ) do |f|
202
+ f.write JSON.pretty_generate( hash_teams )
203
+ end
204
+
205
+ File.open( "#{out_dir}/#{league_basename}.groups.json", 'w' ) do |f|
206
+ f.write JSON.pretty_generate( hash_groups )
207
+ end
208
+
209
+ File.open( "#{out_dir}/#{league_basename}.standings.json", 'w' ) do |f|
210
+ f.write JSON.pretty_generate( hash_standings )
211
+ end
212
+
213
+ File.open( "#{out_dir}/#{league_basename}.json", 'w' ) do |f|
214
+ f.write JSON.pretty_generate( hash_matches )
215
+ end
216
+ end
217
+ end
218
+
219
+ end # class Json Exporter
220
+ end # module SportDb
@@ -222,7 +222,7 @@ def self.export_worldcup( league_key, out_root: )
222
222
 
223
223
  out_dir = "#{out_root}/#{season_basename}"
224
224
  ## make sure folders exist
225
- FileUtils.mkdir_p( out_dir ) unless Dir.exists?( out_dir )
225
+ FileUtils.mkdir_p( out_dir ) unless Dir.exist?( out_dir )
226
226
 
227
227
  File.open( "#{out_dir}/#{league_basename}.stadiums.json", 'w' ) do |f|
228
228
  f.write JSON.pretty_generate( hash_grounds )
@@ -1,10 +1,10 @@
1
1
 
2
2
  module SportDb
3
- module Module
4
- module Exporters
3
+ module Module
4
+ module Exporters
5
5
 
6
6
  MAJOR = 0 ## todo: namespace inside version or something - why? why not??
7
- MINOR = 0
7
+ MINOR = 1
8
8
  PATCH = 1
9
9
  VERSION = [MAJOR,MINOR,PATCH].join('.')
10
10
 
@@ -13,13 +13,13 @@ module SportDb
13
13
  end
14
14
 
15
15
  def self.banner
16
- "sportdb-exporters/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
16
+ "sportdb-exporters/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}] in (#{root})"
17
17
  end
18
18
 
19
19
  def self.root
20
20
  File.expand_path( File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) )
21
21
  end
22
22
 
23
- end # module Exporters
24
- end # module Module
25
- end # module SportDb
23
+ end # module Exporters
24
+ end # module Module
25
+ end # module SportDb
@@ -1,12 +1,16 @@
1
- require 'sportdb/catalogs'
1
+ require 'sportdb/catalogs' ## catalogs gem needed - why ???
2
2
  require 'sportdb/models'
3
3
 
4
4
 
5
+
5
6
  ###
6
7
  # our own code
7
- require 'sportdb/exporters/version'
8
- require 'sportdb/exporters/json_exporter'
9
- require 'sportdb/exporters/json_exporter_more'
8
+ require_relative 'exporters/version'
9
+ require_relative 'exporters/json_exporter'
10
+
11
+ require_relative 'exporters/json_exporter_worldcup' ## for worldcup
12
+ require_relative 'exporters/json_exporter_euro' ## quick hack for euro
13
+ require_relative 'exporters/json_exporter_copa'
10
14
 
11
15
 
12
16
 
metadata CHANGED
@@ -1,46 +1,52 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb-exporters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-21 00:00:00.000000000 Z
11
+ date: 2024-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7'
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '4.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: hoe
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '3.16'
39
+ version: '4.1'
34
40
  type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '3.16'
46
+ version: '4.1'
41
47
  description: sportdb-exporters - export helpers for sport.db data in various formats
42
48
  incl. json, csv, and friends
43
- email: opensport@googlegroups.com
49
+ email: gerald.bauer@gmail.com
44
50
  executables: []
45
51
  extensions: []
46
52
  extra_rdoc_files:
@@ -54,13 +60,15 @@ files:
54
60
  - Rakefile
55
61
  - lib/sportdb/exporters.rb
56
62
  - lib/sportdb/exporters/json_exporter.rb
57
- - lib/sportdb/exporters/json_exporter_more.rb
63
+ - lib/sportdb/exporters/json_exporter_copa.rb
64
+ - lib/sportdb/exporters/json_exporter_euro.rb
65
+ - lib/sportdb/exporters/json_exporter_worldcup.rb
58
66
  - lib/sportdb/exporters/version.rb
59
67
  homepage: https://github.com/sportdb/sport.db
60
68
  licenses:
61
69
  - Public Domain
62
70
  metadata: {}
63
- post_install_message:
71
+ post_install_message:
64
72
  rdoc_options:
65
73
  - "--main"
66
74
  - README.md
@@ -77,9 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
85
  - !ruby/object:Gem::Version
78
86
  version: '0'
79
87
  requirements: []
80
- rubyforge_project:
81
- rubygems_version: 2.5.2
82
- signing_key:
88
+ rubygems_version: 3.4.10
89
+ signing_key:
83
90
  specification_version: 4
84
91
  summary: sportdb-exporters - export helpers for sport.db data in various formats incl.
85
92
  json, csv, and friends