sportdb 1.9.13 → 1.9.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 70333f8ef87129ac463a0de95e5fd4f62ce41973
4
- data.tar.gz: 9faa5a8b97ea68c87357b33bdb3c20e6e6b1969d
3
+ metadata.gz: d2db12336a3fae247a22d4efee7d6c180b28d942
4
+ data.tar.gz: 26987264b067348f1e273e9f2ad37ccc90184de2
5
5
  SHA512:
6
- metadata.gz: be98bcc80a8cde4861aa47e0b57727861a45c24416b8670176bfd427156bf1e5162d926865d1184d0d25d30797da6480c6b2dee49bcafb3fd82d2f8cf942cc52
7
- data.tar.gz: 21f91987bb7b9c9ee12eb7c3532bdeccd5ce33e75029dab892112a4598b45747d1d8c96988a6b3392be675c4260e51c16eab6c116fdaa934a4f9ecd39aa06416
6
+ metadata.gz: db796999c6b36d8cda1ab638a3e271cfebe6bdb3872632a2d6d0185a0a0761859a4d84d552a20e781c5e7cb6585eb6757d22ee72bdf76f1e25929a96c031a551
7
+ data.tar.gz: d16a231df7b59e3916e8aab32732b082784406adb78b36b91cc62515d3c65d94360534532b2a93210f02da3371a7042907980e97a28a97baaf698a64be5ef184
@@ -13,8 +13,6 @@ config/fixtures/ro.yml
13
13
  data/seasons.txt
14
14
  data/setups/all.txt
15
15
  lib/sportdb.rb
16
- lib/sportdb/builder/builder.rb
17
- lib/sportdb/builder/dataset.rb
18
16
  lib/sportdb/calc.rb
19
17
  lib/sportdb/cli/main.rb
20
18
  lib/sportdb/cli/opts.rb
@@ -127,7 +125,6 @@ test/data/world-cup/teams_1962.txt
127
125
  test/data/world-cup/teams_1974.txt
128
126
  test/helper.rb
129
127
  test/test_assoc_reader.rb
130
- test/test_builder.rb
131
128
  test/test_changes.rb
132
129
  test/test_cursor.rb
133
130
  test/test_date.rb
data/Rakefile CHANGED
@@ -33,6 +33,7 @@ Hoe.spec 'sportdb' do
33
33
  ['persondb'], # persons (people) table
34
34
  ['activerecord-utils'], # extras e.g. rnd, find_by! for 3.x etc.
35
35
  ['fetcher', '>= 0.3'],
36
+ ['datafile'],
36
37
 
37
38
  ### sportdb addons
38
39
  ['sportdb-keys'],
@@ -113,10 +113,6 @@ require 'sportdb/deleter'
113
113
  require 'sportdb/stats'
114
114
 
115
115
 
116
- require 'sportdb/builder/dataset'
117
- require 'sportdb/builder/builder'
118
-
119
-
120
116
  module SportDb
121
117
 
122
118
  def self.config_path
@@ -17,8 +17,10 @@ include GLI::App
17
17
 
18
18
  require 'logutils/db'
19
19
  require 'sportdb/cli/opts'
20
-
21
-
20
+
21
+ require 'datafile' ## lets us use Datafile::Builder,Datafile etc.
22
+
23
+
22
24
  program_desc 'sport.db command line tool'
23
25
 
24
26
  version SportDb::VERSION
@@ -79,6 +81,14 @@ def connect_to_db( options )
79
81
  :database => "#{options.db_path}/#{options.db_name}"
80
82
  }
81
83
 
84
+ ## todo/check: use if defined?( JRUBY_VERSION ) instead ??
85
+ if RUBY_PLATFORM =~ /java/ && db_config[:adapter] == 'sqlite3'
86
+ # quick hack for JRuby sqlite3 support via jdbc
87
+ require 'jdbc/sqlite3'
88
+ ## todo: check if require for activerecord jdbc adapter for sqlite is required to
89
+ end
90
+
91
+
82
92
  puts "Connecting to db using settings: "
83
93
  pp db_config
84
94
 
@@ -113,8 +123,9 @@ command [:build,:b] do |c|
113
123
 
114
124
  c.action do |g,o,args|
115
125
 
116
- builder = SportDb::Builder.load_file( './Datafile' )
117
- builder.download # builder step 1 - download all datasets/zips
126
+ builder = Datafile::Builder.load_file( './Datafile' )
127
+ datafile = builder.datafile
128
+ datafile.download # datafile step 1 - download all datasets/zips
118
129
 
119
130
  connect_to_db( opts )
120
131
 
@@ -127,7 +138,7 @@ command [:build,:b] do |c|
127
138
 
128
139
  SportDb.read_builtin # e.g. seasons.txt etc
129
140
 
130
- builder.read # builder step 2 - read all datasets
141
+ datafile.read # datafile step 2 - read all datasets
131
142
 
132
143
  puts 'Done.'
133
144
  end # action
@@ -141,8 +152,9 @@ command [:read,:r] do |c|
141
152
 
142
153
  connect_to_db( opts )
143
154
 
144
- builder = SportDb::Builder.load_file( './Datafile' )
145
- builder.read
155
+ builder = Datafile::Builder.load_file( './Datafile' )
156
+ datafile = builder.datafile
157
+ datafile.read
146
158
 
147
159
  puts 'Done.'
148
160
  end # action
@@ -155,8 +167,9 @@ command [:download,:dl] do |c|
155
167
 
156
168
  # note: no database connection needed (check - needed for logs?? - not setup by default???)
157
169
 
158
- builder = SportDb::Builder.load_file( './Datafile' )
159
- builder.download
170
+ builder = Datafile::Builder.load_file( './Datafile' )
171
+ datafile = builder.datafile
172
+ datafile.download
160
173
 
161
174
  puts 'Done.'
162
175
  end # action
@@ -176,8 +189,9 @@ command [:new,:n] do |c|
176
189
  worker.copy( "https://github.com/openfootball/datafile/raw/master/#{setup}.rb", './Datafile' )
177
190
 
178
191
  ## step 2: same as command build (todo - reuse code)
179
- builder = SportDb::Builder.load_file( './Datafile' )
180
- builder.download # builder step 1 - download all datasets/zips
192
+ builder = Datafile::Builder.load_file( './Datafile' )
193
+ datafile = builder.datafile
194
+ datafile.download # datafile step 1 - download all datasets/zips
181
195
 
182
196
  connect_to_db( opts ) ### todo: check let connect go first?? - for logging (logs) to db ???
183
197
 
@@ -190,8 +204,8 @@ command [:new,:n] do |c|
190
204
 
191
205
  SportDb.read_builtin # e.g. seasons.txt etc
192
206
 
193
- builder.read # builder step 2 - read all datasets
194
-
207
+ datafile.read # datafile step 2 - read all datasets
208
+
195
209
  puts 'Done.'
196
210
  end # action
197
211
  end # command setup
@@ -3,7 +3,7 @@ module SportDb
3
3
 
4
4
  MAJOR = 1 ## todo: namespace inside version or something - why? why not??
5
5
  MINOR = 9
6
- PATCH = 13
6
+ PATCH = 14
7
7
  VERSION = [MAJOR,MINOR,PATCH].join('.')
8
8
 
9
9
  def self.version
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.13
4
+ version: 1.9.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: datafile
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: sportdb-keys
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -260,8 +274,6 @@ files:
260
274
  - data/seasons.txt
261
275
  - data/setups/all.txt
262
276
  - lib/sportdb.rb
263
- - lib/sportdb/builder/builder.rb
264
- - lib/sportdb/builder/dataset.rb
265
277
  - lib/sportdb/calc.rb
266
278
  - lib/sportdb/cli/main.rb
267
279
  - lib/sportdb/cli/opts.rb
@@ -374,7 +386,6 @@ files:
374
386
  - test/data/world-cup/teams_1974.txt
375
387
  - test/helper.rb
376
388
  - test/test_assoc_reader.rb
377
- - test/test_builder.rb
378
389
  - test/test_changes.rb
379
390
  - test/test_cursor.rb
380
391
  - test/test_date.rb
@@ -438,7 +449,6 @@ test_files:
438
449
  - test/test_round_def.rb
439
450
  - test/test_utils.rb
440
451
  - test/test_reader_from_string.rb
441
- - test/test_builder.rb
442
452
  - test/test_round_header.rb
443
453
  - test/test_round_auto.rb
444
454
  - test/test_goals.rb
@@ -1,58 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module SportDb
4
-
5
- class Builder
6
-
7
- include LogUtils::Logging
8
-
9
- def initialize()
10
- @datasets = []
11
- end
12
-
13
- def self.load_file( path )
14
- code = File.read_utf8( path )
15
- self.load( code )
16
- end
17
-
18
- def self.load( code )
19
- builder = Builder.new
20
- builder.instance_eval( code )
21
- builder
22
- end
23
-
24
-
25
- def football( name, opts={} )
26
- logger.info( "[builder] add football-dataset '#{@name}'" )
27
- @datasets << FootballDataset.new( name, opts )
28
- end
29
-
30
- def world( name, opts={} )
31
- logger.info( "[builder] add world-dataset '#{@name}'" )
32
- @datasets << WorldDataset.new( name, opts )
33
- end
34
-
35
-
36
- def run()
37
- logger.info( "[builder] begin - run" )
38
- download() # step 1 - download zips for datasets
39
- read() # step 2 - read in datasets from zips
40
- logger.info( "[builder] end - run" )
41
- end
42
-
43
- def download()
44
- logger.info( "[builder] dowload" )
45
- @datasets.each do |dataset|
46
- dataset.download()
47
- end
48
- end
49
-
50
- def read()
51
- logger.info( "[builder] read" )
52
- @datasets.each do |dataset|
53
- dataset.read()
54
- end
55
- end
56
-
57
- end # class Builder
58
- end # module SportDb
@@ -1,90 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module SportDb
4
-
5
- class Dataset
6
- include LogUtils::Logging
7
-
8
- def initialize( name, opts={} )
9
- @name = name
10
- @opts = opts
11
- end
12
-
13
- def setup()
14
- value = @opts[:setup] || 'all'
15
- "setups/#{value}"
16
- end
17
-
18
- def remote_zip_url() # remote zip url
19
- "https://github.com/#{@name}/archive/master.zip"
20
- end
21
-
22
- def local_zip_name()
23
- ### note: replace / in name w/ --I--
24
- ## e.g. flatten the filename, that is, do NOT include any folders
25
- @name.gsub('/', '--I--') # note: will NOT include/return .zip extension
26
- end
27
-
28
- def local_zip_root()
29
- "./tmp"
30
- end
31
-
32
- def local_zip_path() # local zip path
33
- "#{local_zip_root}/#{local_zip_name}.zip"
34
- end
35
-
36
-
37
- def download()
38
- logger.info( "[builder] download dataset '#{@name}'" )
39
- logger.info( "[builder] from '#{remote_zip_url}'" )
40
- logger.info( "[builder] to '#{local_zip_path}'..." )
41
-
42
- download_blob( remote_zip_url, local_zip_path )
43
- end
44
-
45
- ####
46
- # download tasks for zips
47
- def download_blob( url, dest )
48
- logger.info "downloading #{url} to #{dest}..."
49
-
50
- ## make sure dest path exists
51
- dest_p = File.dirname( dest )
52
- FileUtils.mkdir_p( dest_p ) unless File.exists?( dest_p ) ## use Dir.exists?? why? why not??
53
-
54
- worker = Fetcher::Worker.new
55
- worker.copy( url, dest )
56
- ## print some file stats
57
- logger.debug " size: #{File.size(dest)} bytes"
58
- end
59
-
60
- end # class Dataset
61
-
62
-
63
- class WorldDataset < Dataset
64
-
65
- def initialize( name, opts={} )
66
- super( name, opts )
67
- end
68
-
69
- def read()
70
- logger.info( "[builder] read world-dataset '#{@name}', '#{setup}'" )
71
-
72
- WorldDb.read_setup_from_zip( local_zip_name(), setup(), local_zip_root(), { skip_tags: true } )
73
- end
74
- end # class WorldDataset
75
-
76
- class FootballDataset < Dataset
77
-
78
- def initialize( name, opts={} )
79
- super( name, opts )
80
- end
81
-
82
- def read()
83
- logger.info( "[builder] read football-dataset '#{@name}', '#{setup}'" )
84
-
85
- SportDb.read_setup_from_zip( local_zip_name(), setup(), local_zip_root() )
86
- end
87
- end # class FootballDataset
88
-
89
-
90
- end # module SportDb
@@ -1,36 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ###
4
- # to run use
5
- # ruby -I ./lib -I ./test test/test_builder.rb
6
-
7
- require 'helper'
8
-
9
- class TestBuilder < MiniTest::Test
10
-
11
- def test_builder
12
- code =<<EOS
13
- ## comments
14
-
15
- world 'openmundi/world.db', setup: 'countries'
16
-
17
- football 'openfootball/national-teams' ## NOTE: default is setup: 'all'
18
-
19
- ### todo/fix: download archive only once(!!) even if included more than once
20
- ## football 'openfootball/world-cup', setup: '2014_quali'
21
-
22
- football 'openfootball/world-cup', setup: '2014'
23
-
24
- ## more comments
25
-
26
- EOS
27
-
28
- builder = SportDb::Builder.load( code )
29
- ## builder.run
30
- ## builder.download
31
- builder.read
32
-
33
- assert true # if we get here - test success
34
- end
35
-
36
- end # class TestBuilder