sportdb 0.9.7 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +12 -55
- data/Rakefile +11 -10
- data/bin/sportdb +1 -2
- data/config/fixtures.de.yml +42 -0
- data/config/fixtures.en.yml +52 -0
- data/config/fixtures.es.yml +44 -0
- data/config/fixtures.pt.yml +44 -0
- data/lib/sportdb/cli/main.rb +189 -0
- data/lib/sportdb/cli/opts.rb +15 -69
- data/lib/sportdb/data/fixtures.rb +205 -0
- data/lib/sportdb/{keys.rb → data/keys.rb} +9 -2
- data/lib/sportdb/data/models.rb +43 -0
- data/lib/sportdb/deleter.rb +27 -0
- data/lib/sportdb/lang.rb +265 -0
- data/lib/sportdb/models/event.rb +0 -34
- data/lib/sportdb/reader.rb +322 -78
- data/lib/sportdb/stats.rb +28 -0
- data/lib/sportdb/utils.rb +90 -13
- data/lib/sportdb/version.rb +1 -1
- data/lib/sportdb.rb +49 -198
- data/tasks/test.rb +163 -0
- metadata +46 -71
- data/data/america/2011.rb +0 -36
- data/data/america/2011.txt +0 -110
- data/data/america/2011.yml +0 -30
- data/data/america/teams.txt +0 -26
- data/data/at/2011_12/bl.rb +0 -30
- data/data/at/2011_12/bl.txt +0 -79
- data/data/at/2011_12/cup.rb +0 -66
- data/data/at/2012_13/bl.rb +0 -33
- data/data/at/2012_13/bl.txt +0 -198
- data/data/at/2012_13/cup.rb +0 -111
- data/data/at/2012_13/cup.txt +0 -89
- data/data/at/badges.rb +0 -22
- data/data/at/teams.txt +0 -88
- data/data/cl/2011_12/cl.rb +0 -88
- data/data/cl/2011_12/el.rb +0 -65
- data/data/cl/2012_13/cl.rb +0 -324
- data/data/cl/badges.rb +0 -68
- data/data/cl/teams.txt +0 -46
- data/data/copa/sud_2012_13.rb +0 -38
- data/data/copa/sud_2012_13.txt +0 -49
- data/data/copa/teams.txt +0 -35
- data/data/de/2012_13/bl.rb +0 -38
- data/data/de/2012_13/bl.txt +0 -216
- data/data/de/teams.txt +0 -23
- data/data/en/2012_13/pl.rb +0 -39
- data/data/en/2012_13/pl.txt +0 -291
- data/data/en/teams.txt +0 -26
- data/data/es/teams.txt +0 -8
- data/data/euro/2008.rb +0 -30
- data/data/euro/2008.txt +0 -114
- data/data/euro/2012.rb +0 -25
- data/data/euro/2012.txt +0 -114
- data/data/euro/teams.txt +0 -36
- data/data/leagues.rb +0 -68
- data/data/mx/apertura_2012.rb +0 -35
- data/data/mx/apertura_2012.txt +0 -106
- data/data/mx/teams.txt +0 -20
- data/data/nfl/teams.txt +0 -46
- data/data/nhl/teams.txt +0 -40
- data/data/ro/l1_2012_13.rb +0 -137
- data/data/ro/teams.txt +0 -26
- data/data/seasons.rb +0 -22
- data/data/world/2010.rb +0 -93
- data/data/world/2010.txt +0 -215
- data/data/world/quali_2012_13_america.rb +0 -25
- data/data/world/quali_2012_13_america.txt +0 -41
- data/data/world/quali_2012_13_europe.rb +0 -32
- data/data/world/quali_2012_13_europe_c.txt +0 -85
- data/data/world/quali_2012_13_europe_i.txt +0 -74
- data/data/world/teams.txt +0 -25
- data/lib/sportdb/cli/runner.rb +0 -147
- data/lib/sportdb/loader.rb +0 -82
- data/lib/sportdb/templater.rb +0 -81
- data/templates/fixtures.rb.erb +0 -51
data/Manifest.txt
CHANGED
@@ -3,62 +3,19 @@ Manifest.txt
|
|
3
3
|
README.md
|
4
4
|
Rakefile
|
5
5
|
bin/sportdb
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
data/at/2011_12/bl.rb
|
11
|
-
data/at/2011_12/bl.txt
|
12
|
-
data/at/2011_12/cup.rb
|
13
|
-
data/at/2012_13/bl.rb
|
14
|
-
data/at/2012_13/bl.txt
|
15
|
-
data/at/2012_13/cup.rb
|
16
|
-
data/at/2012_13/cup.txt
|
17
|
-
data/at/badges.rb
|
18
|
-
data/at/teams.txt
|
19
|
-
data/cl/2011_12/cl.rb
|
20
|
-
data/cl/2011_12/el.rb
|
21
|
-
data/cl/2012_13/cl.rb
|
22
|
-
data/cl/badges.rb
|
23
|
-
data/cl/teams.txt
|
24
|
-
data/copa/sud_2012_13.rb
|
25
|
-
data/copa/sud_2012_13.txt
|
26
|
-
data/copa/teams.txt
|
27
|
-
data/de/2012_13/bl.rb
|
28
|
-
data/de/2012_13/bl.txt
|
29
|
-
data/de/teams.txt
|
30
|
-
data/en/2012_13/pl.rb
|
31
|
-
data/en/2012_13/pl.txt
|
32
|
-
data/en/teams.txt
|
33
|
-
data/es/teams.txt
|
34
|
-
data/euro/2008.rb
|
35
|
-
data/euro/2008.txt
|
36
|
-
data/euro/2012.rb
|
37
|
-
data/euro/2012.txt
|
38
|
-
data/euro/teams.txt
|
39
|
-
data/leagues.rb
|
40
|
-
data/mx/apertura_2012.rb
|
41
|
-
data/mx/apertura_2012.txt
|
42
|
-
data/mx/teams.txt
|
43
|
-
data/nfl/teams.txt
|
44
|
-
data/nhl/teams.txt
|
45
|
-
data/ro/l1_2012_13.rb
|
46
|
-
data/ro/teams.txt
|
47
|
-
data/seasons.rb
|
48
|
-
data/world/2010.rb
|
49
|
-
data/world/2010.txt
|
50
|
-
data/world/quali_2012_13_america.rb
|
51
|
-
data/world/quali_2012_13_america.txt
|
52
|
-
data/world/quali_2012_13_europe.rb
|
53
|
-
data/world/quali_2012_13_europe_c.txt
|
54
|
-
data/world/quali_2012_13_europe_i.txt
|
55
|
-
data/world/teams.txt
|
6
|
+
config/fixtures.de.yml
|
7
|
+
config/fixtures.en.yml
|
8
|
+
config/fixtures.es.yml
|
9
|
+
config/fixtures.pt.yml
|
56
10
|
lib/sportdb.rb
|
11
|
+
lib/sportdb/cli/main.rb
|
57
12
|
lib/sportdb/cli/opts.rb
|
58
|
-
lib/sportdb/cli/runner.rb
|
59
13
|
lib/sportdb/console.rb
|
60
|
-
lib/sportdb/
|
61
|
-
lib/sportdb/
|
14
|
+
lib/sportdb/data/fixtures.rb
|
15
|
+
lib/sportdb/data/keys.rb
|
16
|
+
lib/sportdb/data/models.rb
|
17
|
+
lib/sportdb/deleter.rb
|
18
|
+
lib/sportdb/lang.rb
|
62
19
|
lib/sportdb/models/badge.rb
|
63
20
|
lib/sportdb/models/city.rb
|
64
21
|
lib/sportdb/models/country.rb
|
@@ -76,7 +33,7 @@ lib/sportdb/models/season.rb
|
|
76
33
|
lib/sportdb/models/team.rb
|
77
34
|
lib/sportdb/reader.rb
|
78
35
|
lib/sportdb/schema.rb
|
79
|
-
lib/sportdb/
|
36
|
+
lib/sportdb/stats.rb
|
80
37
|
lib/sportdb/utils.rb
|
81
38
|
lib/sportdb/version.rb
|
82
|
-
|
39
|
+
tasks/test.rb
|
data/Rakefile
CHANGED
@@ -4,11 +4,6 @@ require './lib/sportdb/version.rb'
|
|
4
4
|
## NB: plugin (hoe-manifest) not required; just used for future testing/development
|
5
5
|
Hoe::plugin :manifest # more options for manifests (in the future; not yet)
|
6
6
|
|
7
|
-
###########
|
8
|
-
#### NB: if you try this script at home
|
9
|
-
# you need to create a (symbolic) link to the sport.db fixtures
|
10
|
-
# e.g. use ln -s ../sport.db data or similar
|
11
|
-
|
12
7
|
|
13
8
|
Hoe.spec 'sportdb' do
|
14
9
|
|
@@ -28,17 +23,23 @@ Hoe.spec 'sportdb' do
|
|
28
23
|
# self.history_file = 'History.md'
|
29
24
|
|
30
25
|
self.extra_deps = [
|
26
|
+
['worlddb', '~> 1.0.1'], # NB: worlddb already includes
|
27
|
+
# - commander
|
28
|
+
# - logutils
|
29
|
+
# - textutils
|
30
|
+
|
31
|
+
## 3rd party
|
32
|
+
['commander', '~> 4.1.3'] # remove? -- already included as dep in worlddb
|
33
|
+
|
31
34
|
## ['activerecord', '~> 3.2'], # NB: will include activesupport,etc.
|
32
|
-
['worlddb', '~> 0.6.8']
|
33
35
|
### ['sqlite3', '~> 1.3'] # NB: install on your own; remove dependency
|
34
36
|
]
|
35
37
|
|
36
38
|
self.licenses = ['Public Domain']
|
37
39
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
# }
|
40
|
+
self.spec_extras = {
|
41
|
+
:required_ruby_version => '>= 1.9.2'
|
42
|
+
}
|
42
43
|
|
43
44
|
self.post_install_message =<<EOS
|
44
45
|
******************************************************************************
|
data/bin/sportdb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
###########################
|
2
|
+
# known keywords for fixtures
|
3
|
+
|
4
|
+
|
5
|
+
group: Gruppe
|
6
|
+
matchday: Spieltag
|
7
|
+
round: Runde
|
8
|
+
stage: Gruppenphase|Qualifikation|Play-off|Finalrunde|K.-o.-Phase
|
9
|
+
|
10
|
+
|
11
|
+
### Knock out rounds
|
12
|
+
|
13
|
+
round32: Sechzehntelfinale|1/16 Finale
|
14
|
+
round16: Achtelfinale|1/8 Finale
|
15
|
+
quarterfinals: Viertelfinale|1/4 Finale
|
16
|
+
semifinals: Halbfinale|Semifinale|1/2 Finale
|
17
|
+
thirdplace: Spiel um Platz 3
|
18
|
+
final: Finale|Endspiel
|
19
|
+
|
20
|
+
### Pair matches/games if marked with leg1 n leg2
|
21
|
+
|
22
|
+
leg1: Hin|Hinspiel|Hinspiele
|
23
|
+
leg2: Rück|Rückspiel|Rückspiele
|
24
|
+
|
25
|
+
|
26
|
+
#######################
|
27
|
+
# months of year
|
28
|
+
|
29
|
+
january: Jänner|Januar
|
30
|
+
february: Feber|Februar
|
31
|
+
march: März
|
32
|
+
april: April
|
33
|
+
may: Mai
|
34
|
+
june: Juni
|
35
|
+
july: Juli
|
36
|
+
august: August
|
37
|
+
september: September
|
38
|
+
october: Oktober
|
39
|
+
november: November
|
40
|
+
december: Dezember
|
41
|
+
|
42
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
###########################
|
2
|
+
# known keywords for fixtures
|
3
|
+
|
4
|
+
|
5
|
+
group: Group
|
6
|
+
matchday: Matchday
|
7
|
+
round: Round
|
8
|
+
|
9
|
+
stage: Stage|Phase|Rounds
|
10
|
+
# e.g.
|
11
|
+
# Group stage
|
12
|
+
# Play off stage|Play-off stage
|
13
|
+
# Knockout stage|Knockout stages
|
14
|
+
# First stage
|
15
|
+
# Second stage
|
16
|
+
# Qualifying rounds
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
### Knockout rounds
|
22
|
+
|
23
|
+
round32: Round of 32|Last 32
|
24
|
+
round16: Round of 16|Last 16
|
25
|
+
quarterfinals: Quarterfinals|Quarter-finals|Quarters|Quarterfinal # todo: check if singular Quaterfinal is possible??
|
26
|
+
semifinals: Semifinals|Semi-finals|Semis
|
27
|
+
thirdplace: Third-place play-off|Third place play-off|Third place|3rd place match
|
28
|
+
final: Final|Finals
|
29
|
+
|
30
|
+
### Pair matches/games if marked with leg1 n leg2
|
31
|
+
|
32
|
+
leg1: 1st leg|1st Leg|First leg # todo: check for automatica ignore case - why? why not?
|
33
|
+
leg2: 2nd leg|2nd Leg|Second leg
|
34
|
+
|
35
|
+
|
36
|
+
#######################
|
37
|
+
# months of year
|
38
|
+
|
39
|
+
january: January
|
40
|
+
february: February
|
41
|
+
march: March
|
42
|
+
april: April
|
43
|
+
may: May
|
44
|
+
june: June
|
45
|
+
july: July
|
46
|
+
august: August
|
47
|
+
september: September
|
48
|
+
october: October
|
49
|
+
november: November
|
50
|
+
december: December
|
51
|
+
|
52
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
###########################
|
2
|
+
# known keywords for fixtures
|
3
|
+
|
4
|
+
|
5
|
+
group: Grupo
|
6
|
+
matchday: Jornada
|
7
|
+
round: Fecha
|
8
|
+
|
9
|
+
stage: Primera fase|Segunda fase|Fase de grupos|Fase final
|
10
|
+
|
11
|
+
|
12
|
+
### Knock out rounds
|
13
|
+
|
14
|
+
round32: Dieciseisavos de final|16vos de final
|
15
|
+
round16: Octavos|Octavos de final|8vos de final
|
16
|
+
quarterfinals: Cuartos|Cuartos de final|4tos de final
|
17
|
+
semifinals: Semifinales|Semifinal
|
18
|
+
thirdplace: Tercer lugar
|
19
|
+
final: Final
|
20
|
+
|
21
|
+
### Pair matches/games if marked with leg1 n leg2
|
22
|
+
|
23
|
+
leg1: Ida
|
24
|
+
leg2: Vuelta
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
#######################
|
29
|
+
# months of year
|
30
|
+
|
31
|
+
january: enero
|
32
|
+
february: febrero
|
33
|
+
march: marzo
|
34
|
+
april: abril
|
35
|
+
may: mayo
|
36
|
+
june: junio
|
37
|
+
july: julio
|
38
|
+
august: agosto
|
39
|
+
september: septiembre
|
40
|
+
october: octubre
|
41
|
+
november: noviembre
|
42
|
+
december: diciembre
|
43
|
+
|
44
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
###########################
|
2
|
+
# known keywords for fixtures
|
3
|
+
|
4
|
+
|
5
|
+
group: Grupo # Grupo
|
6
|
+
matchday: # Jornada
|
7
|
+
round: # Fecha
|
8
|
+
|
9
|
+
stage: Primeira Fase|Segunda Fase # Primera fase|Segunda fase|Fase de grupos|Fase final
|
10
|
+
|
11
|
+
|
12
|
+
### Knock out rounds
|
13
|
+
|
14
|
+
round32: # Dieciseisavos de final|16vos de final
|
15
|
+
round16: Oitavas-de-final # Octavos|Octavos de final|8vos de final
|
16
|
+
quarterfinals: Quartas-de-final # Cuartos|Cuartos de final|4tos de final
|
17
|
+
semifinals: Semifinais # Semifinales|Semifinal
|
18
|
+
thirdplace: # Tercer lugar
|
19
|
+
final: Final # Final
|
20
|
+
|
21
|
+
### Pair matches/games if marked with leg1 n leg2
|
22
|
+
|
23
|
+
leg1: Ida # Ida
|
24
|
+
leg2: Volta # Vuelta
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
#######################
|
29
|
+
# months of year
|
30
|
+
|
31
|
+
january: janeiro # enero
|
32
|
+
february: fevereiro # febrero
|
33
|
+
march: março # marzo
|
34
|
+
april: abril # abril
|
35
|
+
may: maio # mayo
|
36
|
+
june: junho # junio
|
37
|
+
july: julho # julio
|
38
|
+
august: # agosto
|
39
|
+
september: # septiembre
|
40
|
+
october: # octubre
|
41
|
+
november: # noviembre
|
42
|
+
december: # diciembre
|
43
|
+
|
44
|
+
|
@@ -0,0 +1,189 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'commander/import'
|
4
|
+
|
5
|
+
# our own code / additional for cli only
|
6
|
+
|
7
|
+
require 'sportdb/cli/opts'
|
8
|
+
|
9
|
+
|
10
|
+
program :name, 'sportdb'
|
11
|
+
program :version, SportDB::VERSION
|
12
|
+
program :description, "sport.db command line tool, version #{SportDB::VERSION}"
|
13
|
+
|
14
|
+
|
15
|
+
# default_command :help
|
16
|
+
default_command :load
|
17
|
+
|
18
|
+
program :help_formatter, Commander::HelpFormatter::TerminalCompact
|
19
|
+
|
20
|
+
## program :help, 'Examples', 'yada yada -try multi line later'
|
21
|
+
|
22
|
+
=begin
|
23
|
+
### add to help use new sections
|
24
|
+
|
25
|
+
Examples:
|
26
|
+
sportdb cl/teams cl/2012_13/cl # import champions league (cl)
|
27
|
+
sportdb --create # create database schema
|
28
|
+
|
29
|
+
More Examples:
|
30
|
+
sportdb # show stats (table counts, table props)
|
31
|
+
sportdb -i ../sport.db/db cl/teams cl/2012_13/cl # import champions league (cl) in db folder
|
32
|
+
|
33
|
+
Further information:
|
34
|
+
http://geraldb.github.com/sport.db
|
35
|
+
=end
|
36
|
+
|
37
|
+
|
38
|
+
## todo: find a better name e.g. change to settings? config? safe_opts? why? why not?
|
39
|
+
myopts = SportDB::Opts.new
|
40
|
+
|
41
|
+
### global option (required)
|
42
|
+
## todo: add check that path is valid?? possible?
|
43
|
+
|
44
|
+
global_option '-i', '--include PATH', String, "Data path (default is #{myopts.data_path})"
|
45
|
+
global_option '-d', '--dbpath PATH', String, "Database path (default is #{myopts.db_path})"
|
46
|
+
global_option '-n', '--dbname NAME', String, "Database name (datault is #{myopts.db_name})"
|
47
|
+
|
48
|
+
|
49
|
+
def connect_to_db( options )
|
50
|
+
puts SportDB.banner
|
51
|
+
|
52
|
+
puts "working directory: #{Dir.pwd}"
|
53
|
+
|
54
|
+
db_config = {
|
55
|
+
:adapter => 'sqlite3',
|
56
|
+
:database => "#{options.db_path}/#{options.db_name}"
|
57
|
+
}
|
58
|
+
|
59
|
+
puts "Connecting to db using settings: "
|
60
|
+
pp db_config
|
61
|
+
|
62
|
+
ActiveRecord::Base.establish_connection( db_config )
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
command :create do |c|
|
67
|
+
c.syntax = 'sportdb create [options]'
|
68
|
+
c.description = 'Create DB schema'
|
69
|
+
c.action do |args, options|
|
70
|
+
myopts.merge_commander_options!( options.__hash__ )
|
71
|
+
connect_to_db( myopts )
|
72
|
+
|
73
|
+
LogDB.create
|
74
|
+
WorldDB.create
|
75
|
+
SportDB.create
|
76
|
+
puts 'Done.'
|
77
|
+
end # action
|
78
|
+
end # command create
|
79
|
+
|
80
|
+
command :setup do |c|
|
81
|
+
c.syntax = 'sportdb setup [options]'
|
82
|
+
c.description = "Create DB schema 'n' load all data"
|
83
|
+
|
84
|
+
c.option '--world', 'Populate world tables'
|
85
|
+
## todo: use --world-include - how? find better name?
|
86
|
+
c.option '--worldinclude PATH', String, 'World data path'
|
87
|
+
|
88
|
+
c.option '--sport', 'Populate sport tables'
|
89
|
+
c.option '--delete', 'Delete all records'
|
90
|
+
|
91
|
+
c.action do |args, options|
|
92
|
+
myopts.merge_commander_options!( options.__hash__ )
|
93
|
+
connect_to_db( myopts )
|
94
|
+
|
95
|
+
if options.world.present? || options.sport.present?
|
96
|
+
|
97
|
+
## todo: check order for reference integrity
|
98
|
+
# not really possible to delete world data if sport data is present
|
99
|
+
# delete sport first
|
100
|
+
|
101
|
+
if options.delete.present?
|
102
|
+
SportDB.delete! if options.sport.present?
|
103
|
+
WorldDB.delete! if options.world.present?
|
104
|
+
end
|
105
|
+
|
106
|
+
if options.world.present?
|
107
|
+
WorldDB.read_all( myopts.world_data_path )
|
108
|
+
end
|
109
|
+
if options.sport.present?
|
110
|
+
SportDB.read_all( myopts.data_path )
|
111
|
+
end
|
112
|
+
|
113
|
+
else # assume "plain" regular setup
|
114
|
+
LogDB.create
|
115
|
+
WorldDB.create
|
116
|
+
SportDB.create
|
117
|
+
|
118
|
+
WorldDB.read_all( myopts.world_data_path )
|
119
|
+
SportDB.read_all( myopts.data_path )
|
120
|
+
end
|
121
|
+
puts 'Done.'
|
122
|
+
end # action
|
123
|
+
end # command setup
|
124
|
+
|
125
|
+
command :load do |c|
|
126
|
+
## todo: how to specify many fixutes <>... ??? in syntax
|
127
|
+
c.syntax = 'sportdb load [options] FIXTURE...'
|
128
|
+
c.description = 'Load fixtures'
|
129
|
+
|
130
|
+
c.option '-e', '--event KEY', String, 'Event to load'
|
131
|
+
c.option '--delete', 'Delete all records'
|
132
|
+
|
133
|
+
c.action do |args, options|
|
134
|
+
myopts.merge_commander_options!( options.__hash__ )
|
135
|
+
connect_to_db( myopts )
|
136
|
+
|
137
|
+
SportDB.delete! if options.delete.present?
|
138
|
+
|
139
|
+
logger = LogUtils::Logger.new
|
140
|
+
|
141
|
+
reader = SportDB::Reader.new( logger )
|
142
|
+
|
143
|
+
args.each do |arg|
|
144
|
+
name = arg # File.basename( arg, '.*' )
|
145
|
+
|
146
|
+
if myopts.event.present?
|
147
|
+
## fix: rename to load_event_fixtures_w... or similar
|
148
|
+
reader.load_fixtures_with_include_path( myopts.event, name, myopts.data_path )
|
149
|
+
else
|
150
|
+
## fix> add a convenience method for loading single fixture
|
151
|
+
ary = []
|
152
|
+
ary << name
|
153
|
+
reader.load_with_include_path( ary, myopts.data_path )
|
154
|
+
end
|
155
|
+
end # each arg
|
156
|
+
|
157
|
+
puts 'Done.'
|
158
|
+
end
|
159
|
+
end # command load
|
160
|
+
|
161
|
+
|
162
|
+
command :stats do |c|
|
163
|
+
c.syntax = 'sportdb stats [options]'
|
164
|
+
c.description = 'Show stats'
|
165
|
+
c.action do |args, options|
|
166
|
+
myopts.merge_commander_options!( options.__hash__ )
|
167
|
+
connect_to_db( myopts )
|
168
|
+
|
169
|
+
SportDB.stats
|
170
|
+
|
171
|
+
puts 'Done.'
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
|
176
|
+
command :test do |c|
|
177
|
+
c.syntax = 'sportdb test [options]'
|
178
|
+
c.description = 'Debug/test command suite'
|
179
|
+
c.action do |args, options|
|
180
|
+
puts "hello from test command"
|
181
|
+
puts "args (#{args.class.name}):"
|
182
|
+
pp args
|
183
|
+
puts "options:"
|
184
|
+
pp options
|
185
|
+
puts "options.__hash__:"
|
186
|
+
pp options.__hash__
|
187
|
+
puts 'Done.'
|
188
|
+
end
|
189
|
+
end
|
data/lib/sportdb/cli/opts.rb
CHANGED
@@ -2,91 +2,33 @@ module SportDB
|
|
2
2
|
|
3
3
|
class Opts
|
4
4
|
|
5
|
-
def
|
6
|
-
@
|
7
|
-
|
8
|
-
|
9
|
-
def create?
|
10
|
-
return false if @create.nil? # default create flag is false
|
11
|
-
@create == true
|
12
|
-
end
|
13
|
-
|
14
|
-
def setup=(boolean)
|
15
|
-
@setup = boolean
|
16
|
-
end
|
5
|
+
def merge_commander_options!( options = {} )
|
6
|
+
@db_path = options[:dbpath] if options[:dbpath].present?
|
7
|
+
@db_name = options[:dbname] if options[:dbname].present?
|
17
8
|
|
18
|
-
|
19
|
-
|
20
|
-
@setup == true
|
21
|
-
end
|
9
|
+
@data_path = options[:include] if options[:include].present?
|
10
|
+
@event = options[:event] if options[:event].present?
|
22
11
|
|
23
|
-
|
24
|
-
@sport = boolean
|
12
|
+
@world_data_path = options[:worldinclude] if options[:worldinclude].present?
|
25
13
|
end
|
26
14
|
|
27
|
-
def sport?
|
28
|
-
return false if @sport.nil? # default sport flag is false
|
29
|
-
@sport == true
|
30
|
-
end
|
31
|
-
|
32
|
-
|
33
|
-
def world=(boolean)
|
34
|
-
@world = boolean
|
35
|
-
end
|
36
15
|
|
37
|
-
def
|
38
|
-
|
39
|
-
@world == true
|
16
|
+
def db_path
|
17
|
+
@db_path || '.'
|
40
18
|
end
|
41
19
|
|
42
|
-
|
43
|
-
|
44
|
-
@generate = boolean
|
20
|
+
def db_name
|
21
|
+
@db_name || 'sport.db'
|
45
22
|
end
|
46
23
|
|
47
|
-
def generate?
|
48
|
-
return false if @generate.nil? # default generate flag is false
|
49
|
-
@generate == true
|
50
|
-
end
|
51
|
-
|
52
24
|
def event=(value)
|
53
25
|
@event = value
|
54
26
|
end
|
55
|
-
|
27
|
+
|
56
28
|
def event
|
57
29
|
@event # NB: option has no default; return nil ## || '.'
|
58
|
-
end
|
59
|
-
|
60
|
-
|
61
|
-
def delete=(boolean)
|
62
|
-
@delete = boolean
|
63
30
|
end
|
64
31
|
|
65
|
-
def delete?
|
66
|
-
return false if @delete.nil? # default create flag is false
|
67
|
-
@delete == true
|
68
|
-
end
|
69
|
-
|
70
|
-
|
71
|
-
# use loader? (that is, built-in seed data)
|
72
|
-
def load=(boolean)
|
73
|
-
@load = boolean
|
74
|
-
end
|
75
|
-
|
76
|
-
def load?
|
77
|
-
return false if @load.nil? # default create flag is false
|
78
|
-
@load == true
|
79
|
-
end
|
80
|
-
|
81
|
-
|
82
|
-
def output_path=(value)
|
83
|
-
@output_path = value
|
84
|
-
end
|
85
|
-
|
86
|
-
def output_path
|
87
|
-
@output_path || '.'
|
88
|
-
end
|
89
|
-
|
90
32
|
|
91
33
|
def data_path=(value)
|
92
34
|
@data_path = value
|
@@ -97,6 +39,10 @@ class Opts
|
|
97
39
|
end
|
98
40
|
|
99
41
|
|
42
|
+
def world_data_path
|
43
|
+
@world_data_path # NB: option has no default; return nil
|
44
|
+
end
|
45
|
+
|
100
46
|
end # class Opts
|
101
47
|
|
102
48
|
end # module SportDB
|