sportdb-writers 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.
@@ -1,31 +1,89 @@
1
- ## just use sportdb/catalogs ?! - why? why not?
2
- # require 'sportdb/importers' # -- requires db support
3
- # require 'sportdb/readers' # -- requires db support
4
- require 'sportdb/catalogs'
5
-
6
-
7
- ###
8
- # our own code
9
- require 'sportdb/writers/version'
10
- require 'sportdb/writers/config'
11
- require 'sportdb/writers/txt_writer'
12
- require 'sportdb/writers/write'
13
-
14
- ## setup empty leagues (info) hash
15
- module Writer
16
- LEAGUES = {}
17
- end
18
-
19
- require 'sportdb/leagues/leagues_at'
20
- require 'sportdb/leagues/leagues_de'
21
- require 'sportdb/leagues/leagues_eng'
22
- require 'sportdb/leagues/leagues_es'
23
- require 'sportdb/leagues/leagues_europe'
24
- require 'sportdb/leagues/leagues_it'
25
- require 'sportdb/leagues/leagues_mx'
26
- require 'sportdb/leagues/leagues_south_america'
27
- require 'sportdb/leagues/leagues_world'
28
-
29
-
30
-
31
- puts SportDb::Module::Writers.banner # say hello
1
+
2
+ require 'sportdb/quick'
3
+
4
+
5
+
6
+ module Writer
7
+ class Configuration
8
+ def out_dir() @out_dir || './tmp'; end
9
+ def out_dir=(value) @out_dir = value; end
10
+ ## add outdir alias - why? why not?
11
+ end # class Configuration
12
+
13
+ ## lets you use
14
+ ## Write.configure do |config|
15
+ ## config.out_dir = "??"
16
+ ## end
17
+ def self.configure() yield( config ); end
18
+ def self.config() @config ||= Configuration.new; end
19
+ end # module Writer
20
+
21
+
22
+
23
+ ###
24
+ # our own code
25
+ require_relative 'writers/version'
26
+ require_relative 'writers/txt_writer'
27
+
28
+ require_relative 'writers/goals'
29
+ require_relative 'writers/write'
30
+
31
+
32
+
33
+ ########################
34
+ # push & pull github scripts
35
+ require 'gitti' ## note - requires git machinery
36
+
37
+ require_relative 'writers/github' ## github helpers/update machinery
38
+
39
+
40
+
41
+ ## setup empty leagues (info) hash
42
+ module Writer
43
+ LEAGUES = {}
44
+ end
45
+
46
+ require_relative 'leagues/leagues_at'
47
+ require_relative 'leagues/leagues_de'
48
+ require_relative 'leagues/leagues_eng'
49
+ require_relative 'leagues/leagues_es'
50
+ require_relative 'leagues/leagues_europe'
51
+ require_relative 'leagues/leagues_it'
52
+ require_relative 'leagues/leagues_mx'
53
+ require_relative 'leagues/leagues_south_america'
54
+ require_relative 'leagues/leagues_world'
55
+
56
+
57
+
58
+
59
+ ###
60
+ ## todo/fix: move more code into tool class or such? - why? why not?
61
+
62
+ ## todo/check: find a better name for helper?
63
+ ## find_all_datasets, filter_datatsets - add alias(es???
64
+ ## queries (lik ARGV) e.g. ['at'] or ['eng', 'de'] etc. list of strings
65
+ def filter_datasets( datasets, queries=[] )
66
+ ## find all matching leagues (that is, league keys)
67
+ if queries.empty? ## no filter - get all league keys
68
+ datasets
69
+ else
70
+ datasets.find_all do |dataset|
71
+ found = false
72
+ ## note: normalize league key (remove dot and downcase)
73
+ league_key = dataset[0].gsub( '.', '' )
74
+ queries.each do |query|
75
+ q = query.gsub( '.', '' ).downcase
76
+ if league_key.start_with?( q )
77
+ found = true
78
+ break
79
+ end
80
+ end
81
+ found
82
+ end
83
+ end
84
+ end
85
+
86
+
87
+
88
+
89
+ puts SportDb::Module::Writers.banner # say hello
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb-writers
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-11-15 00:00:00.000000000 Z
11
+ date: 2024-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: sportdb-catalogs
14
+ name: sportdb-quick
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.0
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: gitti
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rdoc
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -50,18 +64,20 @@ dependencies:
50
64
  requirements:
51
65
  - - "~>"
52
66
  - !ruby/object:Gem::Version
53
- version: '3.22'
67
+ version: '4.1'
54
68
  type: :development
55
69
  prerelease: false
56
70
  version_requirements: !ruby/object:Gem::Requirement
57
71
  requirements:
58
72
  - - "~>"
59
73
  - !ruby/object:Gem::Version
60
- version: '3.22'
74
+ version: '4.1'
61
75
  description: sportdb-writers - sport.db writers for match schedules and results, and
62
76
  more
63
- email: opensport@googlegroups.com
64
- executables: []
77
+ email: gerald.bauer@gmail.com
78
+ executables:
79
+ - fbgen
80
+ - fbtxt
65
81
  extensions: []
66
82
  extra_rdoc_files:
67
83
  - CHANGELOG.md
@@ -72,6 +88,8 @@ files:
72
88
  - Manifest.txt
73
89
  - README.md
74
90
  - Rakefile
91
+ - bin/fbgen
92
+ - bin/fbtxt
75
93
  - lib/sportdb/leagues/leagues_at.rb
76
94
  - lib/sportdb/leagues/leagues_de.rb
77
95
  - lib/sportdb/leagues/leagues_eng.rb
@@ -82,18 +100,16 @@ files:
82
100
  - lib/sportdb/leagues/leagues_south_america.rb
83
101
  - lib/sportdb/leagues/leagues_world.rb
84
102
  - lib/sportdb/writers.rb
85
- - lib/sportdb/writers/config.rb
103
+ - lib/sportdb/writers/github.rb
104
+ - lib/sportdb/writers/goals.rb
86
105
  - lib/sportdb/writers/txt_writer.rb
87
106
  - lib/sportdb/writers/version.rb
88
107
  - lib/sportdb/writers/write.rb
89
- - test/helper.rb
90
- - test/test_txt_writer.rb
91
- - test/test_version.rb
92
108
  homepage: https://github.com/sportdb/sport.db
93
109
  licenses:
94
110
  - Public Domain
95
111
  metadata: {}
96
- post_install_message:
112
+ post_install_message:
97
113
  rdoc_options:
98
114
  - "--main"
99
115
  - README.md
@@ -103,16 +119,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
119
  requirements:
104
120
  - - ">="
105
121
  - !ruby/object:Gem::Version
106
- version: 2.2.2
122
+ version: 3.1.0
107
123
  required_rubygems_version: !ruby/object:Gem::Requirement
108
124
  requirements:
109
125
  - - ">="
110
126
  - !ruby/object:Gem::Version
111
127
  version: '0'
112
128
  requirements: []
113
- rubyforge_project:
114
- rubygems_version: 2.5.2
115
- signing_key:
129
+ rubygems_version: 3.4.10
130
+ signing_key:
116
131
  specification_version: 4
117
132
  summary: sportdb-writers - sport.db writers for match schedules and results, and more
118
133
  test_files: []
@@ -1,18 +0,0 @@
1
- module Writer
2
-
3
- class Configuration
4
- def out_dir() @out_dir || './tmp'; end
5
- def out_dir=(value) @out_dir = value; end
6
- end # class Configuration
7
-
8
-
9
- ## lets you use
10
- ## Write.configure do |config|
11
- ## config.out_dir = "??"
12
- ## end
13
-
14
- def self.configure() yield( config ); end
15
-
16
- def self.config() @config ||= Configuration.new; end
17
-
18
- end # module Writer
data/test/helper.rb DELETED
@@ -1,19 +0,0 @@
1
- ## note: use the local version of sportdb gems
2
-
3
- # todo/fix: use SPORTDB_DIR or such (for reuse) in boot!!!!!!!!
4
-
5
- $LOAD_PATH.unshift( File.expand_path( '../../../sportdb/sport.db/sportdb-formats/lib' ))
6
- $LOAD_PATH.unshift( File.expand_path( '../../../sportdb/sport.db/sportdb-config/lib' ))
7
-
8
-
9
- ## minitest setup
10
- require 'minitest/autorun'
11
-
12
-
13
- ## our own code
14
- require 'sportdb/writers'
15
-
16
-
17
- ## use (switch to) "external" datasets
18
- SportDb::Import.config.clubs_dir = "../../../openfootball/clubs"
19
- SportDb::Import.config.leagues_dir = "../../../openfootball/leagues"
@@ -1,124 +0,0 @@
1
- ###
2
- # to run use
3
- # ruby -I ./lib -I ./test test/test_txt_writer.rb
4
-
5
-
6
- require 'helper'
7
-
8
-
9
- class TestTxtWriter < MiniTest::Test
10
-
11
- TxtMatchWriter = SportDb::TxtMatchWriter
12
-
13
-
14
- def test_eng
15
- matches = SportDb::CsvMatchParser.read( '../../stage/one/2019-20/eng.1.csv' )
16
-
17
- puts
18
- pp matches[0]
19
- puts "#{matches.size} matches"
20
-
21
-
22
- league_name = 'English Premier League'
23
- season_key = '2019/20'
24
-
25
- matches = normalize( matches, league: league_name )
26
-
27
- path = './tmp/pl.txt'
28
- TxtMatchWriter.write( path, matches,
29
- title: "#{league_name} #{season_key}",
30
- round: 'Matchday',
31
- lang: 'en')
32
-
33
- end
34
-
35
- def test_es
36
- matches = SportDb::CsvMatchParser.read( '../../stage/one/2019-20/es.1.csv' )
37
-
38
- puts
39
- pp matches[0]
40
- puts "#{matches.size} matches"
41
-
42
-
43
- league_name = 'Primera División de España'
44
- season_key = '2019/20'
45
-
46
- matches = normalize( matches, league: league_name )
47
-
48
- path = './tmp/liga.txt'
49
- TxtMatchWriter.write( path, matches,
50
- title: "#{league_name} #{season_key}",
51
- round: 'Jornada',
52
- lang: 'es')
53
-
54
- end
55
-
56
- def test_it
57
- matches = SportDb::CsvMatchParser.read( '../../stage/one/2019-20/it.1.csv' )
58
-
59
- puts
60
- pp matches[0]
61
- puts "#{matches.size} matches"
62
-
63
-
64
- league_name = 'Italian Serie A'
65
- season_key = '2019/20'
66
-
67
- matches = normalize( matches, league: league_name )
68
-
69
- path = './tmp/seriea.txt'
70
- TxtMatchWriter.write( path, matches,
71
- title: "#{league_name} #{season_key}",
72
- round: ->(round) { "%s^ Giornata" % round },
73
- lang: 'it')
74
- end
75
-
76
- #####
77
- # note: fix sort order e.g. cover
78
- #
79
- # 17^ Giornata
80
- # [Mer. 18.12.]
81
- # UC Sampdoria 1-2 Juventus
82
- #
83
- # 7^ Giornata
84
- # [Mer. 18.12.]
85
- # Brescia 0-2 US Sassuolo Calcio
86
- #
87
- # 17^ Giornata
88
- # [Ven. 20.12.]
89
- # ACF Fiorentina 1-4 AS Roma
90
-
91
-
92
- ########
93
- # helper
94
- # normalize team names
95
- def normalize( matches, league: )
96
- matches = matches.sort do |l,r|
97
- ## first by date (older first)
98
- ## next by matchday (lowwer first)
99
- res = l.date <=> r.date
100
- res = l.round <=> r.round if res == 0
101
- res
102
- end
103
-
104
-
105
- league = SportDb::Import.catalog.leagues.find!( league )
106
- country = league.country
107
-
108
- ## todo/fix: cache name lookups - why? why not?
109
- matches.each do |match|
110
- team1 = SportDb::Import.catalog.clubs.find_by!( name: match.team1,
111
- country: country )
112
- team2 = SportDb::Import.catalog.clubs.find_by!( name: match.team2,
113
- country: country )
114
-
115
- puts "#{match.team1} => #{team1.name}" if match.team1 != team1.name
116
- puts "#{match.team2} => #{team2.name}" if match.team2 != team2.name
117
-
118
- match.update( team1: team1.name )
119
- match.update( team2: team2.name )
120
- end
121
- matches
122
- end
123
-
124
- end # class TestTxtWriter
data/test/test_version.rb DELETED
@@ -1,16 +0,0 @@
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 SportDb::Module::Writers::VERSION
12
- pp SportDb::Module::Writers.banner
13
- pp SportDb::Module::Writers.root
14
- end
15
-
16
- end # class TestVersion