sportdb 1.6.17 → 1.6.18
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 +96 -1
- data/Rakefile +1 -1
- data/lib/sportdb/cli/main.rb +135 -124
- data/lib/sportdb/cli/opts.rb +13 -12
- data/lib/sportdb/reader.rb +8 -8
- data/lib/sportdb/version.rb +1 -1
- metadata +13 -13
data/README.md
CHANGED
|
@@ -11,7 +11,88 @@
|
|
|
11
11
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
The sportdb gem lets you load fixtures in plain text into your sports database (also includes schema & models for easy reuse)
|
|
15
|
+
|
|
16
|
+
~~~
|
|
17
|
+
SYNOPSIS
|
|
18
|
+
sportdb [global options] command [command options] [arguments...]
|
|
19
|
+
|
|
20
|
+
VERSION
|
|
21
|
+
1.6
|
|
22
|
+
|
|
23
|
+
GLOBAL OPTIONS
|
|
24
|
+
-d, --dbpath=PATH - Database path (default: .)
|
|
25
|
+
-n, --dbname=NAME - Database name (default: sport.db)
|
|
26
|
+
--verbose - (Debug) Show debug messages
|
|
27
|
+
--version - Show version
|
|
28
|
+
|
|
29
|
+
COMMANDS
|
|
30
|
+
create - Create DB schema
|
|
31
|
+
setup, s - Create DB schema 'n' load all world and sports data
|
|
32
|
+
update, up, u - Update all sports data
|
|
33
|
+
load, l - Load sports fixtures
|
|
34
|
+
logs - Show logs
|
|
35
|
+
props - Show props
|
|
36
|
+
stats - Show stats
|
|
37
|
+
test - (Debug) Test command suite
|
|
38
|
+
help - Shows a list of commands or help for one command
|
|
39
|
+
~~~
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### `setup` Command
|
|
43
|
+
|
|
44
|
+
~~~
|
|
45
|
+
NAME
|
|
46
|
+
setup - Create DB schema 'n' load all world and sports data
|
|
47
|
+
|
|
48
|
+
SYNOPSIS
|
|
49
|
+
sportdb [global options] setup [command options] NAME
|
|
50
|
+
|
|
51
|
+
COMMAND OPTIONS
|
|
52
|
+
-i, --include=PATH - Sports data path (default: .)
|
|
53
|
+
--worldinclude=PATH - World data path (default: none)
|
|
54
|
+
|
|
55
|
+
EXAMPLES
|
|
56
|
+
sportdb setup --include ./at-austria --worldinclude ./world.db
|
|
57
|
+
sportdb setup 2013_14 --include ./at-austria --worldinclude ./world.db
|
|
58
|
+
~~~
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### `update` Command
|
|
62
|
+
|
|
63
|
+
~~~
|
|
64
|
+
NAME
|
|
65
|
+
update - Update all sports data
|
|
66
|
+
|
|
67
|
+
SYNOPSIS
|
|
68
|
+
sportdb [global options] update [command options] NAME
|
|
69
|
+
|
|
70
|
+
COMMAND OPTIONS
|
|
71
|
+
--delete - Delete all sports data records
|
|
72
|
+
-i, --include=PATH - Sports data path (default: .)
|
|
73
|
+
|
|
74
|
+
EXAMPLES
|
|
75
|
+
sportdb update --include ./at-austria
|
|
76
|
+
sportdb update --include ./at-austria --delete
|
|
77
|
+
sportdb update 2013_14 --include ./at-austria --delete
|
|
78
|
+
~~~
|
|
79
|
+
|
|
80
|
+
### `load` Command
|
|
81
|
+
|
|
82
|
+
~~~
|
|
83
|
+
NAME
|
|
84
|
+
load - Load sports fixtures
|
|
85
|
+
|
|
86
|
+
SYNOPSIS
|
|
87
|
+
sportdb [global options] load [command options] NAME
|
|
88
|
+
|
|
89
|
+
COMMAND OPTIONS
|
|
90
|
+
--delete - Delete all sports data records
|
|
91
|
+
|
|
92
|
+
EXAMPLES
|
|
93
|
+
sportdb load --include ./at-austria 2013_14/bl
|
|
94
|
+
sportdb load --include ./at-austria 2013_14/bl 2013_14/cup
|
|
95
|
+
~~~
|
|
15
96
|
|
|
16
97
|
|
|
17
98
|
## Install
|
|
@@ -21,6 +102,20 @@ Just install the gem:
|
|
|
21
102
|
$ gem install sportdb
|
|
22
103
|
|
|
23
104
|
|
|
105
|
+
## Free Open Public Domain Datasets
|
|
106
|
+
|
|
107
|
+
- [`football.db`](https://github.com/openfootball) - free open public domain football (soccer) data for use in any (programming) language
|
|
108
|
+
- [`formula1.db`](https://github.com/geraldb/formula1.db) - free open public domain Formula 1/Formula One data for use in any (programming) language
|
|
109
|
+
- [`sport.db`](https://github.com/geraldb/sport.db) - free open public domain sports data for use in any (programming) language
|
|
110
|
+
- [`ski.db`](https://github.com/geraldb/ski.db) - free open public domain Ski Alpin/Alpine Ski data for use in any (programming) language
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
## Questions? Comments?
|
|
114
|
+
|
|
115
|
+
Send them along to the
|
|
116
|
+
[Open Sports & Friends Forum/Mailing List](http://groups.google.com/group/opensport).
|
|
117
|
+
Thanks!
|
|
118
|
+
|
|
24
119
|
## License
|
|
25
120
|
|
|
26
121
|
The `sportdb` scripts are dedicated to the public domain.
|
data/Rakefile
CHANGED
|
@@ -29,7 +29,7 @@ Hoe.spec 'sportdb' do
|
|
|
29
29
|
# - textutils
|
|
30
30
|
|
|
31
31
|
## 3rd party
|
|
32
|
-
['
|
|
32
|
+
['gli', '>= 2.5.6']
|
|
33
33
|
|
|
34
34
|
## ['activerecord', '~> 3.2'], # NB: will include activesupport,etc.
|
|
35
35
|
### ['sqlite3', '~> 1.3'] # NB: install on your own; remove dependency
|
data/lib/sportdb/cli/main.rb
CHANGED
|
@@ -9,26 +9,24 @@
|
|
|
9
9
|
# --include ../../github/football.db
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
require '
|
|
12
|
+
require 'gli'
|
|
13
|
+
|
|
14
|
+
include GLI::App
|
|
13
15
|
|
|
14
16
|
# our own code / additional for cli only
|
|
15
17
|
|
|
16
18
|
require 'logutils/db'
|
|
17
19
|
require 'sportdb/cli/opts'
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
program_desc 'sport.db command line tool'
|
|
18
23
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
program :name, 'sportdb'
|
|
22
|
-
program :version, SportDb::VERSION
|
|
23
|
-
program :description, "sport.db command line tool, version #{SportDb::VERSION}"
|
|
24
|
-
|
|
24
|
+
version SportDb::VERSION
|
|
25
25
|
|
|
26
|
-
# default_command :help
|
|
27
|
-
default_command :load
|
|
28
26
|
|
|
29
|
-
|
|
27
|
+
LogUtils::Logger.root.level = :info # set logging level to info
|
|
28
|
+
logger = LogUtils::Logger.root
|
|
30
29
|
|
|
31
|
-
## program :help, 'Examples', 'yada yada -try multi line later'
|
|
32
30
|
|
|
33
31
|
=begin
|
|
34
32
|
### add to help use new sections
|
|
@@ -47,18 +45,28 @@ Further information:
|
|
|
47
45
|
|
|
48
46
|
|
|
49
47
|
## todo: find a better name e.g. change to settings? config? safe_opts? why? why not?
|
|
50
|
-
|
|
48
|
+
opts = SportDb::Opts.new
|
|
51
49
|
|
|
52
50
|
### global option (required)
|
|
53
51
|
## todo: add check that path is valid?? possible?
|
|
54
52
|
|
|
55
|
-
global_option '-i', '--include PATH', String, "Data path (default is #{myopts.data_path})"
|
|
56
|
-
global_option '-d', '--dbpath PATH', String, "Database path (default is #{myopts.db_path})"
|
|
57
|
-
global_option '-n', '--dbname NAME', String, "Database name (datault is #{myopts.db_name})"
|
|
58
53
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
desc 'Database path'
|
|
55
|
+
arg_name 'PATH'
|
|
56
|
+
default_value opts.db_path
|
|
57
|
+
flag [:d, :dbpath]
|
|
58
|
+
|
|
59
|
+
desc 'Database name'
|
|
60
|
+
arg_name 'NAME'
|
|
61
|
+
default_value opts.db_name
|
|
62
|
+
flag [:n, :dbname]
|
|
63
|
+
|
|
64
|
+
desc '(Debug) Show debug messages'
|
|
65
|
+
switch [:verbose], negatable: false ## todo: use -w for short form? check ruby interpreter if in use too?
|
|
66
|
+
|
|
67
|
+
desc 'Only show warnings, errors and fatal messages'
|
|
68
|
+
switch [:q, :quiet], negatable: false
|
|
69
|
+
|
|
62
70
|
|
|
63
71
|
|
|
64
72
|
def connect_to_db( options )
|
|
@@ -80,16 +88,11 @@ def connect_to_db( options )
|
|
|
80
88
|
end
|
|
81
89
|
|
|
82
90
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
c.
|
|
86
|
-
c.action do |args, options|
|
|
91
|
+
desc 'Create DB schema'
|
|
92
|
+
command [:create] do |c|
|
|
93
|
+
c.action do |g,o,args|
|
|
87
94
|
|
|
88
|
-
|
|
89
|
-
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
|
90
|
-
|
|
91
|
-
myopts.merge_commander_options!( options.__hash__ )
|
|
92
|
-
connect_to_db( myopts )
|
|
95
|
+
connect_to_db( opts )
|
|
93
96
|
|
|
94
97
|
LogDb.create
|
|
95
98
|
WorldDb.create
|
|
@@ -98,108 +101,94 @@ command :create do |c|
|
|
|
98
101
|
end # action
|
|
99
102
|
end # command create
|
|
100
103
|
|
|
101
|
-
command :setup do |c|
|
|
102
|
-
c.syntax = 'sportdb setup [options]'
|
|
103
|
-
c.description = "Create DB schema 'n' load all data"
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
desc "Create DB schema 'n' load all world and sports data"
|
|
106
|
+
arg_name 'NAME' # optional setup profile name
|
|
107
|
+
command [:setup,:s] do |c|
|
|
108
108
|
|
|
109
|
-
c.
|
|
110
|
-
c.
|
|
109
|
+
c.desc 'Sports data path'
|
|
110
|
+
c.arg_name 'PATH'
|
|
111
|
+
c.default_value opts.data_path
|
|
112
|
+
c.flag [:i,:include]
|
|
111
113
|
|
|
112
|
-
c.
|
|
114
|
+
c.desc 'World data path'
|
|
115
|
+
c.arg_name 'PATH'
|
|
116
|
+
c.flag [:worldinclude] ## todo: use --world-include - how? find better name? add :'world-include' ???
|
|
113
117
|
|
|
114
|
-
|
|
115
|
-
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
|
118
|
+
c.action do |g,o,args|
|
|
116
119
|
|
|
117
|
-
|
|
118
|
-
connect_to_db( myopts )
|
|
120
|
+
connect_to_db( opts )
|
|
119
121
|
|
|
120
122
|
## todo: document optional setup profile arg (defaults to all)
|
|
121
123
|
setup = args[0] || 'all'
|
|
122
124
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
# not really possible to delete world data if sport data is present
|
|
127
|
-
# delete sport first
|
|
128
|
-
|
|
129
|
-
if options.delete.present?
|
|
130
|
-
SportDb.delete! if options.sport.present?
|
|
131
|
-
WorldDb.delete! if options.world.present?
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
if options.world.present?
|
|
135
|
-
WorldDb.read_all( myopts.world_data_path )
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
if options.sport.present?
|
|
139
|
-
SportDb.read_setup( "setups/#{setup}", myopts.data_path )
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
else # assume "plain" regular setup
|
|
143
|
-
LogDb.create
|
|
144
|
-
WorldDb.create
|
|
145
|
-
SportDb.create
|
|
125
|
+
LogDb.create
|
|
126
|
+
WorldDb.create
|
|
127
|
+
SportDb.create
|
|
146
128
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
end
|
|
129
|
+
WorldDb.read_all( opts.world_data_path )
|
|
130
|
+
SportDb.read_setup( "setups/#{setup}", opts.data_path )
|
|
150
131
|
puts 'Done.'
|
|
151
132
|
end # action
|
|
152
133
|
end # command setup
|
|
153
134
|
|
|
154
|
-
command :load do |c|
|
|
155
|
-
## todo: how to specify many fixutes <>... ??? in syntax
|
|
156
|
-
c.syntax = 'sportdb load [options] FIXTURE...'
|
|
157
|
-
c.description = 'Load fixtures'
|
|
158
135
|
|
|
159
|
-
|
|
160
|
-
|
|
136
|
+
desc 'Update all sports data'
|
|
137
|
+
arg_name 'NAME' # optional setup profile name
|
|
138
|
+
command [:update,:up,:u] do |c|
|
|
139
|
+
|
|
140
|
+
c.desc 'Sports data path'
|
|
141
|
+
c.arg_name 'PATH'
|
|
142
|
+
c.default_value opts.data_path
|
|
143
|
+
c.flag [:i,:include]
|
|
144
|
+
|
|
145
|
+
c.desc 'Delete all sports data records'
|
|
146
|
+
c.switch [:delete], negatable: false
|
|
147
|
+
|
|
148
|
+
c.action do |g,o,args|
|
|
149
|
+
|
|
150
|
+
connect_to_db( opts )
|
|
151
|
+
|
|
152
|
+
## todo: document optional setup profile arg (defaults to all)
|
|
153
|
+
setup = args[0] || 'all'
|
|
154
|
+
|
|
155
|
+
SportDb.delete! if o[:delete].present?
|
|
156
|
+
|
|
157
|
+
SportDb.read_setup( "setups/#{setup}", opts.data_path )
|
|
158
|
+
puts 'Done.'
|
|
159
|
+
end # action
|
|
160
|
+
end # command setup
|
|
161
161
|
|
|
162
|
-
c.action do |args, options|
|
|
163
162
|
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
desc 'Load sports fixtures'
|
|
164
|
+
arg_name 'NAME' # multiple fixture names - todo/fix: use multiple option
|
|
165
|
+
command [:load, :l] do |c|
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
c.desc 'Delete all sports data records'
|
|
168
|
+
c.switch [:delete], negatable: false
|
|
169
|
+
|
|
170
|
+
c.action do |g,o,args|
|
|
171
|
+
|
|
172
|
+
connect_to_db( opts )
|
|
169
173
|
|
|
170
|
-
SportDb.delete! if
|
|
174
|
+
SportDb.delete! if o[:delete].present?
|
|
171
175
|
|
|
172
|
-
reader = SportDb::Reader.new(
|
|
176
|
+
reader = SportDb::Reader.new( opts.data_path )
|
|
173
177
|
|
|
174
178
|
args.each do |arg|
|
|
175
179
|
name = arg # File.basename( arg, '.*' )
|
|
176
|
-
|
|
177
|
-
if myopts.event.present?
|
|
178
|
-
## fix: rename to load_event_fixtures_w... or similar
|
|
179
|
-
reader.load_fixtures( myopts.event, name )
|
|
180
|
-
else
|
|
181
|
-
## fix> add a convenience method for loading single fixture
|
|
182
|
-
ary = []
|
|
183
|
-
ary << name
|
|
184
|
-
reader.load( ary )
|
|
185
|
-
end
|
|
180
|
+
reader.load( name )
|
|
186
181
|
end # each arg
|
|
187
182
|
|
|
188
183
|
puts 'Done.'
|
|
189
184
|
end
|
|
190
185
|
end # command load
|
|
191
186
|
|
|
192
|
-
|
|
187
|
+
desc 'Show logs'
|
|
193
188
|
command :logs do |c|
|
|
194
|
-
c.
|
|
195
|
-
c.description = 'Show logs'
|
|
196
|
-
c.action do |args, options|
|
|
189
|
+
c.action do |g,o,args|
|
|
197
190
|
|
|
198
|
-
|
|
199
|
-
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
|
200
|
-
|
|
201
|
-
myopts.merge_commander_options!( options.__hash__ )
|
|
202
|
-
connect_to_db( myopts )
|
|
191
|
+
connect_to_db( opts )
|
|
203
192
|
|
|
204
193
|
LogDb::Models::Log.all.each do |log|
|
|
205
194
|
puts "[#{log.level}] -- #{log.msg}"
|
|
@@ -210,16 +199,11 @@ command :logs do |c|
|
|
|
210
199
|
end
|
|
211
200
|
|
|
212
201
|
|
|
202
|
+
desc 'Show stats'
|
|
213
203
|
command :stats do |c|
|
|
214
|
-
c.
|
|
215
|
-
c.description = 'Show stats'
|
|
216
|
-
c.action do |args, options|
|
|
217
|
-
|
|
218
|
-
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
|
219
|
-
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
|
204
|
+
c.action do |g,o,args|
|
|
220
205
|
|
|
221
|
-
|
|
222
|
-
connect_to_db( myopts )
|
|
206
|
+
connect_to_db( opts )
|
|
223
207
|
|
|
224
208
|
SportDb.tables
|
|
225
209
|
|
|
@@ -228,16 +212,11 @@ command :stats do |c|
|
|
|
228
212
|
end
|
|
229
213
|
|
|
230
214
|
|
|
215
|
+
desc 'Show props'
|
|
231
216
|
command :props do |c|
|
|
232
|
-
c.
|
|
233
|
-
c.description = 'Show props'
|
|
234
|
-
c.action do |args, options|
|
|
235
|
-
|
|
236
|
-
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
|
237
|
-
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
|
217
|
+
c.action do |g,o,args|
|
|
238
218
|
|
|
239
|
-
|
|
240
|
-
connect_to_db( myopts )
|
|
219
|
+
connect_to_db( opts )
|
|
241
220
|
|
|
242
221
|
SportDb.props
|
|
243
222
|
|
|
@@ -246,21 +225,17 @@ command :props do |c|
|
|
|
246
225
|
end
|
|
247
226
|
|
|
248
227
|
|
|
228
|
+
desc '(Debug) Test command suite'
|
|
249
229
|
command :test do |c|
|
|
250
|
-
c.
|
|
251
|
-
c.description = 'Debug/test command suite'
|
|
252
|
-
c.action do |args, options|
|
|
253
|
-
|
|
254
|
-
LogUtils::Logger.root.level = :warn if options.quiet.present?
|
|
255
|
-
LogUtils::Logger.root.level = :debug if options.verbose.present?
|
|
230
|
+
c.action do |g,o,args|
|
|
256
231
|
|
|
257
232
|
puts "hello from test command"
|
|
258
233
|
puts "args (#{args.class.name}):"
|
|
259
234
|
pp args
|
|
260
|
-
puts "
|
|
261
|
-
pp
|
|
262
|
-
puts "
|
|
263
|
-
pp
|
|
235
|
+
puts "o (#{o.class.name}):"
|
|
236
|
+
pp o
|
|
237
|
+
puts "g (#{g.class.name}):"
|
|
238
|
+
pp g
|
|
264
239
|
|
|
265
240
|
LogUtils::Logger.root.debug 'test debug msg'
|
|
266
241
|
LogUtils::Logger.root.info 'test info msg'
|
|
@@ -269,3 +244,39 @@ command :test do |c|
|
|
|
269
244
|
puts 'Done.'
|
|
270
245
|
end
|
|
271
246
|
end
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
pre do |g,c,o,args|
|
|
251
|
+
opts.merge_gli_options!( g )
|
|
252
|
+
opts.merge_gli_options!( o )
|
|
253
|
+
|
|
254
|
+
puts SportDb.banner
|
|
255
|
+
|
|
256
|
+
if opts.verbose?
|
|
257
|
+
LogUtils::Logger.root.level = :debug
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
logger.debug "Executing #{c.name}"
|
|
261
|
+
true
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
post do |global,c,o,args|
|
|
265
|
+
logger.debug "Executed #{c.name}"
|
|
266
|
+
true
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
on_error do |e|
|
|
271
|
+
puts
|
|
272
|
+
puts "*** error: #{e.message}"
|
|
273
|
+
|
|
274
|
+
if opts.verbose?
|
|
275
|
+
puts e.backtrace
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
false # skip default error handling
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
exit run(ARGV)
|
data/lib/sportdb/cli/opts.rb
CHANGED
|
@@ -2,33 +2,34 @@ module SportDb
|
|
|
2
2
|
|
|
3
3
|
class Opts
|
|
4
4
|
|
|
5
|
-
def
|
|
5
|
+
def merge_gli_options!( options = {} )
|
|
6
6
|
@db_path = options[:dbpath] if options[:dbpath].present?
|
|
7
7
|
@db_name = options[:dbname] if options[:dbname].present?
|
|
8
8
|
|
|
9
|
-
@
|
|
10
|
-
@event = options[:event] if options[:event].present?
|
|
9
|
+
@verbose = true if options[:verbose] == true
|
|
11
10
|
|
|
11
|
+
@data_path = options[:include] if options[:include].present?
|
|
12
12
|
@world_data_path = options[:worldinclude] if options[:worldinclude].present?
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
def
|
|
17
|
-
@
|
|
16
|
+
def verbose=(boolean) # add: alias for debug ??
|
|
17
|
+
@verbose = boolean
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def
|
|
21
|
-
@
|
|
20
|
+
def verbose?
|
|
21
|
+
return false if @verbose.nil? # default verbose/debug flag is false
|
|
22
|
+
@verbose == true
|
|
22
23
|
end
|
|
23
24
|
|
|
24
|
-
def event=(value)
|
|
25
|
-
@event = value
|
|
26
|
-
end
|
|
27
25
|
|
|
28
|
-
def
|
|
29
|
-
@
|
|
26
|
+
def db_path
|
|
27
|
+
@db_path || '.'
|
|
30
28
|
end
|
|
31
29
|
|
|
30
|
+
def db_name
|
|
31
|
+
@db_name || 'sport.db'
|
|
32
|
+
end
|
|
32
33
|
|
|
33
34
|
def data_path=(value)
|
|
34
35
|
@data_path = value
|
data/lib/sportdb/reader.rb
CHANGED
|
@@ -68,7 +68,13 @@ class Reader
|
|
|
68
68
|
load_records( name, race_id: race.id ) # e.g. 2013/04-gp-monaco.txt in formula1.db
|
|
69
69
|
elsif name =~ /(?:^|\/)seasons/ # NB: ^seasons or also possible at-austria!/seasons
|
|
70
70
|
load_seasons( name )
|
|
71
|
-
elsif name =~ /^leagues/
|
|
71
|
+
elsif match_leagues_for_country( name ) do |country_key| # name =~ /^([a-z]{2})\/leagues/
|
|
72
|
+
# auto-add country code (from folder structure) for country-specific leagues
|
|
73
|
+
# e.g. at/leagues
|
|
74
|
+
country = Country.find_by_key!( country_key )
|
|
75
|
+
load_leagues( name, club: true, country_id: country.id )
|
|
76
|
+
end
|
|
77
|
+
elsif name =~ /(?:^|\/)leagues/ # NB: ^leagues or also possible world!/leagues - NB: make sure goes after leagues_for_country!!
|
|
72
78
|
if name =~ /club/
|
|
73
79
|
# e.g. leagues_club
|
|
74
80
|
load_leagues( name, club: true )
|
|
@@ -76,19 +82,13 @@ class Reader
|
|
|
76
82
|
# e.g. leagues
|
|
77
83
|
load_leagues( name )
|
|
78
84
|
end
|
|
79
|
-
elsif match_leagues_for_country( name ) do |country_key| # name =~ /^([a-z]{2})\/leagues/
|
|
80
|
-
# auto-add country code (from folder structure) for country-specific leagues
|
|
81
|
-
# e.g. at/leagues
|
|
82
|
-
country = Country.find_by_key!( country_key )
|
|
83
|
-
load_leagues( name, club: true, country_id: country.id )
|
|
84
|
-
end
|
|
85
85
|
elsif match_teams_for_country( name ) do |country_key| # name =~ /^([a-z]{2})\/teams/
|
|
86
86
|
# auto-add country code (from folder structure) for country-specific teams
|
|
87
87
|
# e.g. at/teams at/teams.2 de/teams etc.
|
|
88
88
|
country = Country.find_by_key!( country_key )
|
|
89
89
|
load_teams( name, club: true, country_id: country.id )
|
|
90
90
|
end
|
|
91
|
-
elsif name =~
|
|
91
|
+
elsif name =~ /(?:^|\/)teams/
|
|
92
92
|
if name =~ /club/
|
|
93
93
|
# club teams (many countries)
|
|
94
94
|
# e.g. club/europe/teams
|
data/lib/sportdb/version.rb
CHANGED
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.6.
|
|
4
|
+
version: 1.6.18
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-06-
|
|
12
|
+
date: 2013-06-27 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: worlddb
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &13812420 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ~>
|
|
@@ -21,21 +21,21 @@ dependencies:
|
|
|
21
21
|
version: '1.7'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *13812420
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
|
-
name:
|
|
27
|
-
requirement: &
|
|
26
|
+
name: gli
|
|
27
|
+
requirement: &13812156 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
|
-
- -
|
|
30
|
+
- - ! '>='
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
32
|
+
version: 2.5.6
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *13812156
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: rdoc
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &13811748 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ~>
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '4.0'
|
|
44
44
|
type: :development
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *13811748
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: hoe
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &13811340 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ~>
|
|
@@ -54,7 +54,7 @@ dependencies:
|
|
|
54
54
|
version: '3.6'
|
|
55
55
|
type: :development
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *13811340
|
|
58
58
|
description: sportdb - sport.db command line tool
|
|
59
59
|
email: opensport@googlegroups.com
|
|
60
60
|
executables:
|