sportdb 1.2.0 → 1.3.0
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/README.md +7 -3
- data/Rakefile +1 -1
- data/lib/sportdb/cli/main.rb +78 -1
- data/lib/sportdb/lang.rb +9 -11
- data/lib/sportdb/models/event.rb +4 -1
- data/lib/sportdb/reader.rb +14 -20
- data/lib/sportdb/version.rb +1 -1
- metadata +56 -88
data/README.md
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
-
# sportdb
|
1
|
+
# sportdb - sport.db Command Line Tool in Ruby
|
2
2
|
|
3
|
-
sport.db
|
3
|
+
[](http://travis-ci.org/geraldb/sport.db.ruby)
|
4
4
|
|
5
|
-
* [
|
5
|
+
* home :: [github.com/geraldb/sport.db.ruby](https://github.com/geraldb/sport.db.ruby)
|
6
|
+
* bugs :: [github.com/geraldb/sport.db.ruby/issues](https://github.com/geraldb/sport.db.ruby/issues)
|
7
|
+
* gem :: [rubygems.org/gems/sportdb](https://rubygems.org/gems/sportdb)
|
8
|
+
* rdoc :: [rubydoc.info/gems/sportdb](http://rubydoc.info/gems/sportdb)
|
9
|
+
* forum :: [groups.google.com/group/opensport](https://groups.google.com/group/opensport)
|
6
10
|
|
7
11
|
|
8
12
|
## Usage
|
data/Rakefile
CHANGED
data/lib/sportdb/cli/main.rb
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
+
##############
|
4
|
+
# nb: for local testing use:
|
5
|
+
#
|
6
|
+
# ruby -I ../../github/sport.db.ruby/lib
|
7
|
+
# ../../github/sport.db.ruby/lib/sportdb.rb
|
8
|
+
# setup --delete --sport
|
9
|
+
# --include ../../github/football.db
|
10
|
+
|
11
|
+
|
3
12
|
require 'commander/import'
|
4
13
|
|
5
14
|
# our own code / additional for cli only
|
@@ -7,6 +16,7 @@ require 'commander/import'
|
|
7
16
|
require 'logutils/db'
|
8
17
|
require 'sportdb/cli/opts'
|
9
18
|
|
19
|
+
LogUtils::Logger.root.level = :info # set logging level to info
|
10
20
|
|
11
21
|
program :name, 'sportdb'
|
12
22
|
program :version, SportDB::VERSION
|
@@ -46,6 +56,10 @@ global_option '-i', '--include PATH', String, "Data path (default is #{myopts.da
|
|
46
56
|
global_option '-d', '--dbpath PATH', String, "Database path (default is #{myopts.db_path})"
|
47
57
|
global_option '-n', '--dbname NAME', String, "Database name (datault is #{myopts.db_name})"
|
48
58
|
|
59
|
+
global_option '-q', '--quiet', "Only show warnings, errors and fatal messages"
|
60
|
+
### todo/fix: just want --debug/--verbose flag (no single letter option wanted) - fix
|
61
|
+
global_option '-w', '--verbose', "Show debug messages"
|
62
|
+
|
49
63
|
|
50
64
|
def connect_to_db( options )
|
51
65
|
puts SportDB.banner
|
@@ -70,6 +84,10 @@ command :create do |c|
|
|
70
84
|
c.syntax = 'sportdb create [options]'
|
71
85
|
c.description = 'Create DB schema'
|
72
86
|
c.action do |args, options|
|
87
|
+
|
88
|
+
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
89
|
+
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
90
|
+
|
73
91
|
myopts.merge_commander_options!( options.__hash__ )
|
74
92
|
connect_to_db( myopts )
|
75
93
|
|
@@ -92,6 +110,10 @@ command :setup do |c|
|
|
92
110
|
c.option '--delete', 'Delete all records'
|
93
111
|
|
94
112
|
c.action do |args, options|
|
113
|
+
|
114
|
+
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
115
|
+
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
116
|
+
|
95
117
|
myopts.merge_commander_options!( options.__hash__ )
|
96
118
|
connect_to_db( myopts )
|
97
119
|
|
@@ -134,6 +156,10 @@ command :load do |c|
|
|
134
156
|
c.option '--delete', 'Delete all records'
|
135
157
|
|
136
158
|
c.action do |args, options|
|
159
|
+
|
160
|
+
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
161
|
+
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
162
|
+
|
137
163
|
myopts.merge_commander_options!( options.__hash__ )
|
138
164
|
connect_to_db( myopts )
|
139
165
|
|
@@ -160,14 +186,56 @@ command :load do |c|
|
|
160
186
|
end # command load
|
161
187
|
|
162
188
|
|
189
|
+
command :logs do |c|
|
190
|
+
c.syntax = 'sportdb logs [options]'
|
191
|
+
c.description = 'Show logs'
|
192
|
+
c.action do |args, options|
|
193
|
+
|
194
|
+
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
195
|
+
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
196
|
+
|
197
|
+
myopts.merge_commander_options!( options.__hash__ )
|
198
|
+
connect_to_db( myopts )
|
199
|
+
|
200
|
+
LogDB::Models::Log.all.each do |log|
|
201
|
+
puts "[#{log.level}] -- #{log.msg}"
|
202
|
+
end
|
203
|
+
|
204
|
+
puts 'Done.'
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
|
163
209
|
command :stats do |c|
|
164
210
|
c.syntax = 'sportdb stats [options]'
|
165
211
|
c.description = 'Show stats'
|
166
212
|
c.action do |args, options|
|
213
|
+
|
214
|
+
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
215
|
+
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
216
|
+
|
217
|
+
myopts.merge_commander_options!( options.__hash__ )
|
218
|
+
connect_to_db( myopts )
|
219
|
+
|
220
|
+
SportDB.tables
|
221
|
+
|
222
|
+
puts 'Done.'
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
|
227
|
+
command :props do |c|
|
228
|
+
c.syntax = 'sportdb props [options]'
|
229
|
+
c.description = 'Show props'
|
230
|
+
c.action do |args, options|
|
231
|
+
|
232
|
+
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
233
|
+
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
234
|
+
|
167
235
|
myopts.merge_commander_options!( options.__hash__ )
|
168
236
|
connect_to_db( myopts )
|
169
237
|
|
170
|
-
SportDB.
|
238
|
+
SportDB.props
|
171
239
|
|
172
240
|
puts 'Done.'
|
173
241
|
end
|
@@ -178,6 +246,10 @@ command :test do |c|
|
|
178
246
|
c.syntax = 'sportdb test [options]'
|
179
247
|
c.description = 'Debug/test command suite'
|
180
248
|
c.action do |args, options|
|
249
|
+
|
250
|
+
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
251
|
+
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
252
|
+
|
181
253
|
puts "hello from test command"
|
182
254
|
puts "args (#{args.class.name}):"
|
183
255
|
pp args
|
@@ -185,6 +257,11 @@ command :test do |c|
|
|
185
257
|
pp options
|
186
258
|
puts "options.__hash__:"
|
187
259
|
pp options.__hash__
|
260
|
+
|
261
|
+
LogUtils::Logger.root.debug 'test debug msg'
|
262
|
+
LogUtils::Logger.root.info 'test info msg'
|
263
|
+
LogUtils::Logger.root.warn 'test warn msg'
|
264
|
+
|
188
265
|
puts 'Done.'
|
189
266
|
end
|
190
267
|
end
|
data/lib/sportdb/lang.rb
CHANGED
@@ -4,9 +4,7 @@ module SportDB
|
|
4
4
|
|
5
5
|
class Lang
|
6
6
|
|
7
|
-
|
8
|
-
@logger ||= LogUtils[ self ]
|
9
|
-
end
|
7
|
+
include LogUtils::Logging
|
10
8
|
|
11
9
|
def initialize
|
12
10
|
|
@@ -29,9 +27,9 @@ class Lang
|
|
29
27
|
@words_de = fixtures_hash_to_words_ary( @fixtures_de )
|
30
28
|
@words_es = fixtures_hash_to_words_ary( @fixtures_es )
|
31
29
|
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
logger.debug "en - #{@words_en.size} words: #{@words_en}"
|
31
|
+
logger.debug "de - #{@words_de.size} words: #{@words_de}"
|
32
|
+
logger.debug "es - #{@words_es.size} words: #{@words_es}"
|
35
33
|
|
36
34
|
end
|
37
35
|
|
@@ -200,9 +198,7 @@ end # class Lang
|
|
200
198
|
|
201
199
|
class LangChecker
|
202
200
|
|
203
|
-
|
204
|
-
@logger ||= LogUtils[ self ]
|
205
|
-
end
|
201
|
+
include LogUtils::Logging
|
206
202
|
|
207
203
|
def initialize
|
208
204
|
end
|
@@ -234,13 +230,15 @@ class LangChecker
|
|
234
230
|
|
235
231
|
# dump stats
|
236
232
|
|
237
|
-
logger.
|
233
|
+
logger.debug "lang checker:"
|
238
234
|
lang_counts.each_with_index do |item,index|
|
239
235
|
## e.g. 1. en: 20 words
|
240
236
|
## 2. de: 2 words
|
241
|
-
logger.
|
237
|
+
logger.debug " #{index+1}. #{item[0]}: #{item[1]}"
|
242
238
|
end
|
243
239
|
|
240
|
+
logger.info "lang checker - using lang >>#{lang_counts[0][0]}<<"
|
241
|
+
|
244
242
|
## return lang code w/ highest count
|
245
243
|
lang_counts[0][0]
|
246
244
|
end
|
data/lib/sportdb/models/event.rb
CHANGED
@@ -68,7 +68,10 @@ class Event < ActiveRecord::Base
|
|
68
68
|
|
69
69
|
known_teams << [ team.key, titles ]
|
70
70
|
|
71
|
-
|
71
|
+
### fix:
|
72
|
+
## plain logger
|
73
|
+
|
74
|
+
LogUtils::Logger.root.debug " Team[#{index+1}] #{team.key} >#{titles.join('|')}<"
|
72
75
|
end
|
73
76
|
|
74
77
|
known_teams
|
data/lib/sportdb/reader.rb
CHANGED
@@ -4,9 +4,7 @@ module SportDB
|
|
4
4
|
|
5
5
|
class Reader
|
6
6
|
|
7
|
-
|
8
|
-
@logger ||= LogUtils[ self ]
|
9
|
-
end
|
7
|
+
include LogUtils::Logging
|
10
8
|
|
11
9
|
## make models available in sportdb module by default with namespace
|
12
10
|
# e.g. lets you use Team instead of Models::Team
|
@@ -64,8 +62,8 @@ class Reader
|
|
64
62
|
|
65
63
|
end
|
66
64
|
|
67
|
-
|
68
|
-
|
65
|
+
logger.debug "fixture setup:"
|
66
|
+
logger.debug ary.to_json
|
69
67
|
|
70
68
|
ary
|
71
69
|
|
@@ -74,8 +72,8 @@ class Reader
|
|
74
72
|
|
75
73
|
def load( ary, include_path ) # convenience helper for all-in-one reader
|
76
74
|
|
77
|
-
|
78
|
-
|
75
|
+
logger.debug "enter load(include_path=>>#{include_path}<<):"
|
76
|
+
logger.debug ary.to_json
|
79
77
|
|
80
78
|
ary.each do |rec|
|
81
79
|
if rec.kind_of?( String )
|
@@ -141,8 +139,7 @@ class Reader
|
|
141
139
|
|
142
140
|
load_leagues_worker( reader )
|
143
141
|
|
144
|
-
|
145
|
-
### Prop.create!( key: "db.#{fixture_name_to_prop_key(name)}.version", value: "file.txt.#{File.mtime(path).strftime('%Y.%m.%d')}" )
|
142
|
+
Prop.create_from_fixture!( name, path )
|
146
143
|
|
147
144
|
end # load_leagues
|
148
145
|
|
@@ -160,7 +157,7 @@ class Reader
|
|
160
157
|
|
161
158
|
if key == 'seasons'
|
162
159
|
|
163
|
-
|
160
|
+
logger.debug "#{value.class.name}: >>#{value}<<"
|
164
161
|
|
165
162
|
## nb: assume value is an array
|
166
163
|
value.each do |item|
|
@@ -190,8 +187,7 @@ class Reader
|
|
190
187
|
|
191
188
|
end # each key,value
|
192
189
|
|
193
|
-
|
194
|
-
### Prop.create_from_sportdb_fixture!( name, path )
|
190
|
+
Prop.create_from_fixture!( name, path )
|
195
191
|
|
196
192
|
end # load_seasons
|
197
193
|
|
@@ -279,7 +275,7 @@ class Reader
|
|
279
275
|
|
280
276
|
event.update_attributes!( event_attribs )
|
281
277
|
|
282
|
-
|
278
|
+
Prop.create_from_fixture!( name, path )
|
283
279
|
|
284
280
|
end # load_event
|
285
281
|
|
@@ -307,8 +303,7 @@ class Reader
|
|
307
303
|
|
308
304
|
load_fixtures_worker( event_key, reader )
|
309
305
|
|
310
|
-
|
311
|
-
## Prop.create!( key: "db.#{fixture_name_to_prop_key(name)}.version", value: "file.txt.#{File.mtime(path).strftime('%Y.%m.%d')}" )
|
306
|
+
Prop.create_from_fixture!( name, path )
|
312
307
|
end
|
313
308
|
|
314
309
|
|
@@ -321,8 +316,7 @@ class Reader
|
|
321
316
|
|
322
317
|
load_teams_worker( reader )
|
323
318
|
|
324
|
-
|
325
|
-
## Prop.create!( key: "db.#{fixture_name_to_prop_key(name)}.version", value: "sport.txt.#{SportDB::VERSION}" )
|
319
|
+
Prop.create_from_fixture!( name, path )
|
326
320
|
end # load_teams
|
327
321
|
|
328
322
|
private
|
@@ -357,7 +351,7 @@ private
|
|
357
351
|
rec = League.new
|
358
352
|
end
|
359
353
|
|
360
|
-
|
354
|
+
logger.debug attribs.to_json
|
361
355
|
|
362
356
|
rec.update_attributes!( attribs )
|
363
357
|
|
@@ -402,7 +396,7 @@ private
|
|
402
396
|
rec = Team.new
|
403
397
|
end
|
404
398
|
|
405
|
-
|
399
|
+
logger.debug attribs.to_json
|
406
400
|
|
407
401
|
rec.update_attributes!( attribs )
|
408
402
|
|
@@ -422,7 +416,7 @@ private
|
|
422
416
|
|
423
417
|
@event = Event.find_by_key!( event_key )
|
424
418
|
|
425
|
-
logger.
|
419
|
+
logger.debug "Event #{@event.key} >#{@event.title}<"
|
426
420
|
|
427
421
|
@known_teams = @event.known_teams_table
|
428
422
|
|
data/lib/sportdb/version.rb
CHANGED
metadata
CHANGED
@@ -1,93 +1,68 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sportdb
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.3.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
version: 1.2.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Gerald Bauer
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-02-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: worlddb
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &75587880 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 2
|
32
|
-
- 0
|
33
|
-
version: 1.2.0
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.3.0
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: commander
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: *75587880
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: commander
|
27
|
+
requirement: &75587650 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
29
|
+
requirements:
|
42
30
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 61
|
45
|
-
segments:
|
46
|
-
- 4
|
47
|
-
- 1
|
48
|
-
- 3
|
31
|
+
- !ruby/object:Gem::Version
|
49
32
|
version: 4.1.3
|
50
33
|
type: :runtime
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: rdoc
|
54
34
|
prerelease: false
|
55
|
-
|
35
|
+
version_requirements: *75587650
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rdoc
|
38
|
+
requirement: &75587420 !ruby/object:Gem::Requirement
|
56
39
|
none: false
|
57
|
-
requirements:
|
40
|
+
requirements:
|
58
41
|
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
segments:
|
62
|
-
- 3
|
63
|
-
- 10
|
64
|
-
version: "3.10"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '3.10'
|
65
44
|
type: :development
|
66
|
-
version_requirements: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: hoe
|
69
45
|
prerelease: false
|
70
|
-
|
46
|
+
version_requirements: *75587420
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: hoe
|
49
|
+
requirement: &75587190 !ruby/object:Gem::Requirement
|
71
50
|
none: false
|
72
|
-
requirements:
|
51
|
+
requirements:
|
73
52
|
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
segments:
|
77
|
-
- 3
|
78
|
-
- 3
|
79
|
-
version: "3.3"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.3'
|
80
55
|
type: :development
|
81
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *75587190
|
82
58
|
description: sportdb - sport.db command line tool
|
83
59
|
email: opensport@googlegroups.com
|
84
|
-
executables:
|
60
|
+
executables:
|
85
61
|
- sportdb
|
86
62
|
extensions: []
|
87
|
-
|
88
|
-
extra_rdoc_files:
|
63
|
+
extra_rdoc_files:
|
89
64
|
- Manifest.txt
|
90
|
-
files:
|
65
|
+
files:
|
91
66
|
- History.md
|
92
67
|
- Manifest.txt
|
93
68
|
- README.md
|
@@ -128,47 +103,40 @@ files:
|
|
128
103
|
- lib/sportdb/version.rb
|
129
104
|
- tasks/test.rb
|
130
105
|
homepage: https://github.com/geraldb/sport.db.ruby
|
131
|
-
licenses:
|
106
|
+
licenses:
|
132
107
|
- Public Domain
|
133
|
-
post_install_message:
|
134
|
-
|
135
|
-
|
108
|
+
post_install_message: ! '******************************************************************************
|
109
|
+
|
110
|
+
|
136
111
|
Questions? Comments? Send them along to the mailing list.
|
112
|
+
|
137
113
|
https://groups.google.com/group/opensport
|
138
|
-
|
114
|
+
|
115
|
+
|
139
116
|
******************************************************************************
|
140
117
|
|
141
|
-
|
118
|
+
'
|
119
|
+
rdoc_options:
|
142
120
|
- --main
|
143
121
|
- README.md
|
144
|
-
require_paths:
|
122
|
+
require_paths:
|
145
123
|
- lib
|
146
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
124
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
147
125
|
none: false
|
148
|
-
requirements:
|
149
|
-
- -
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
hash: 55
|
152
|
-
segments:
|
153
|
-
- 1
|
154
|
-
- 9
|
155
|
-
- 2
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
156
129
|
version: 1.9.2
|
157
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
131
|
none: false
|
159
|
-
requirements:
|
160
|
-
- -
|
161
|
-
- !ruby/object:Gem::Version
|
162
|
-
|
163
|
-
segments:
|
164
|
-
- 0
|
165
|
-
version: "0"
|
132
|
+
requirements:
|
133
|
+
- - ! '>='
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
166
136
|
requirements: []
|
167
|
-
|
168
137
|
rubyforge_project: sportdb
|
169
|
-
rubygems_version: 1.8.
|
138
|
+
rubygems_version: 1.8.17
|
170
139
|
signing_key:
|
171
140
|
specification_version: 3
|
172
141
|
summary: sportdb - sport.db command line tool
|
173
142
|
test_files: []
|
174
|
-
|