sportdb 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,25 +7,60 @@ class Reader
7
7
  include SportDB::Models
8
8
 
9
9
 
10
- def initialize( opts )
11
- @logger = Logger.new(STDOUT)
12
- @logger.level = Logger::INFO
10
+ def initialize( logger=nil )
11
+ if logger.nil?
12
+ @logger = Logger.new(STDOUT)
13
+ @logger.level = Logger::INFO
14
+ else
15
+ @logger = logger
16
+ end
17
+ end
18
+
19
+ attr_reader :logger
20
+
21
+ def run( opts, args )
22
+
23
+ args.each do |arg|
24
+ name = arg # File.basename( arg, '.*' )
25
+
26
+ if opts.load?
27
+ load_fixtures_builtin( opts.event, name )
28
+ else
29
+ load_fixtures_with_include_path( opts.event, name, opts.data_path )
30
+ end
31
+ end
32
+
33
+ end
34
+
35
+
36
+ def load_fixtures_with_include_path( event_key, name, include_path ) # load from file system
37
+ path = "#{include_path}/#{name}.txt"
38
+
39
+ puts "*** parsing data '#{name}' (#{path})..."
40
+
41
+ code = File.read( path )
13
42
 
14
- @opts = opts
43
+ load_fixtures_worker( event_key, code )
15
44
  end
16
45
 
17
- attr_reader :logger, :opts
46
+ def load_fixtures_builtin( event_key, name ) # load from gem (built-in)
47
+ path = "#{SportDB.root}/db/#{name}.txt"
18
48
 
19
- def run( args )
20
-
21
- puts SportDB.banner
49
+ puts "*** parsing data '#{name}' (#{path})..."
22
50
 
23
- puts "working directory: #{Dir.pwd}"
24
-
51
+ code = File.read( path )
52
+
53
+ load_fixtures_worker( event_key, code )
54
+ end
55
+
56
+
57
+ private
58
+ def load_fixtures_worker( event_key, data )
59
+
25
60
  ## assume active activerecord connection
26
61
  ##
27
62
 
28
- @event = Event.find_by_key!( opts.event )
63
+ @event = Event.find_by_key!( event_key )
29
64
 
30
65
  puts "Event #{@event.key} >#{@event.title}<"
31
66
 
@@ -58,17 +93,10 @@ class Reader
58
93
 
59
94
  puts " Team[#{index+1}] #{team.key} >#{titles.join('|')}<"
60
95
  end
61
-
62
-
63
- args.each do |arg|
64
- name = arg # File.basename( arg, '.*' )
65
- parse_fixtures( name )
66
- end
67
-
68
-
69
- puts 'Done.'
96
+
97
+ parse_fixtures( data )
70
98
 
71
- end # method run
99
+ end # method load_fixtures
72
100
 
73
101
 
74
102
  def is_round?( line )
@@ -249,15 +277,9 @@ class Reader
249
277
  end # method translate_teams!
250
278
 
251
279
 
252
- def parse_fixtures( name )
253
-
254
- path = "#{opts.data_path}/#{name}.txt"
255
-
256
- puts "*** parsing data '#{name}' (#{path})..."
257
-
258
- old_lines = File.read( path )
259
-
260
- old_lines.each_line do |line|
280
+ def parse_fixtures( data )
281
+
282
+ data.each_line do |line|
261
283
 
262
284
  if line =~ /^\s*#/
263
285
  # skip komments and do NOT copy to result (keep comments secret!)
@@ -403,4 +425,4 @@ class Reader
403
425
 
404
426
 
405
427
  end # class Reader
406
- end # module SportDB
428
+ end # module SportDB
@@ -27,45 +27,39 @@ class Templater
27
27
  include SportDB::Models
28
28
 
29
29
 
30
- def initialize( opts )
31
- @logger = Logger.new(STDOUT)
32
- @logger.level = Logger::INFO
33
-
34
- @opts = opts
30
+ def initialize( logger )
31
+ if logger.nil?
32
+ @logger = Logger.new(STDOUT)
33
+ @logger.level = Logger::INFO
34
+ else
35
+ @logger = logger
36
+ end
35
37
  end
36
38
 
37
- attr_reader :logger, :opts
38
-
39
- # make props available for template
40
- attr_reader :event
41
-
42
- def run( args )
43
-
44
- puts SportDB.banner
39
+ attr_reader :logger
45
40
 
46
- puts "working directory: #{Dir.pwd}"
47
-
41
+ def run( opts, args )
42
+
48
43
  ## assume active activerecord connection
49
44
  ##
50
-
51
- @event = Event.find_by_key!( opts.event )
52
-
53
- puts "Event #{@event.key} >#{@event.title}<"
54
-
55
-
45
+
56
46
  args.each do |arg|
57
47
  ## name = File.basename( arg, '.*' )
58
48
  name = arg
59
- gen_fixtures( name )
49
+ gen_fixtures( opts.event, name )
60
50
  end
61
-
62
-
63
- puts 'Done.'
64
-
51
+
65
52
  end # method run
66
53
 
54
+
55
+ # make props available for template
56
+ attr_reader :event
67
57
 
68
- def gen_fixtures( name )
58
+ def gen_fixtures( event_key, name )
59
+
60
+ @event = Event.find_by_key!( event_key )
61
+
62
+ puts "Event #{@event.key} >#{@event.title}<"
69
63
 
70
64
  ## todo: honor -o/--output option ??
71
65
 
@@ -1,4 +1,4 @@
1
1
 
2
2
  module SportDB
3
- VERSION = '0.4.3'
3
+ VERSION = '0.4.4'
4
4
  end
data/lib/sportdb.rb CHANGED
@@ -56,10 +56,23 @@ module SportDB
56
56
  # load built-in (that is, bundled within the gem) named seeds
57
57
  # - pass in an array of seed names e.g. [ 'cl/teams', 'cl/2012_13/cl' ] etc.
58
58
 
59
- def self.load( args )
60
- Loader.new.run( args )
59
+ def self.load( ary )
60
+ loader = Loader.new
61
+ ary.each do |name|
62
+ loader.load_fixtures_builtin( name )
63
+ end
61
64
  end
62
-
65
+
66
+ # load built-in (that is, bundled within the gem) named plain text seeds
67
+ # - pass in an array of pairs of event/seed names e.g. [['at.2012/13', 'at/2012_13/bl'], ['cl.2012/13', 'cl/2012_13/cl']] etc.
68
+
69
+ def self.read( ary )
70
+ reader = Reader.new
71
+ ary.each do |rec|
72
+ reader.load_fixtures_builtin( rec[0], rec[1] ) # event_key, name
73
+ end
74
+ end
75
+
63
76
 
64
77
  class Deleter
65
78
  ## todo: move into its own file???
@@ -27,7 +27,15 @@ ev = Event.find_by_key!( '<%= event.key %>' )
27
27
  <% event.rounds.each do |round| %>
28
28
  <%= 'games%02d' % round.pos %> = [
29
29
  <% round.games.each_with_index do |game| %>
30
- [ <%= '%-18s' % "#{game.team1.key}," %> [<%= "#{game.score1},#{game.score2}" if game.score1.present? && game.score2.present? %>], <%= '%-18s' % "#{game.team2.key}," %> Time.utc('<%= game.play_at.strftime('%Y-%m-%d %H:%M') %>') ],
30
+ [ <%= '%3d' % game.pos %>, <%= '%-18s' % "#{game.team1.key}," %>
31
+ [
32
+ <%= "#{game.score1},#{game.score2}" if game.score1.present? && game.score2.present? %>
33
+ <%= ",#{game.score3},#{game.score4}" if game.score3.present? && game.score4.present? %>
34
+ <%= ",#{game.score5},#{game.score6}" if game.score5.present? && game.score6.present? %>
35
+ ],
36
+ <%= '%-18s' % "#{game.team2.key}," %> Time.utc('<%= game.play_at.strftime('%Y-%m-%d %H:%M') %>')
37
+ , <%= game.knockout %>
38
+ ],
31
39
  <%# does comma for last entry matter? ruby ignores it for sure? check %>
32
40
  <% end %>
33
41
  ]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sportdb
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 3
10
- version: 0.4.3
9
+ - 4
10
+ version: 0.4.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gerald Bauer
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-10-28 00:00:00 Z
18
+ date: 2012-10-29 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: activerecord
@@ -70,9 +70,13 @@ extensions: []
70
70
 
71
71
  extra_rdoc_files:
72
72
  - Manifest.txt
73
+ - db/at/2011_12/bl.txt
73
74
  - db/at/2012_13/bl.txt
75
+ - db/at/2012_13/cup.txt
74
76
  - db/de/2012_13/bl.txt
75
77
  - db/en/2012_13/pl.txt
78
+ - db/world/quali_2012_13_c.txt
79
+ - db/world/quali_2012_13_i.txt
76
80
  files:
77
81
  - History.markdown
78
82
  - Manifest.txt
@@ -80,10 +84,15 @@ files:
80
84
  - Rakefile
81
85
  - bin/sportdb
82
86
  - db/at/2011_12/bl.rb
87
+ - db/at/2011_12/bl.txt
88
+ - db/at/2011_12/bl_fixtures.rb
83
89
  - db/at/2011_12/cup.rb
84
90
  - db/at/2012_13/bl.rb
85
91
  - db/at/2012_13/bl.txt
92
+ - db/at/2012_13/bl_fixtures.rb
86
93
  - db/at/2012_13/cup.rb
94
+ - db/at/2012_13/cup.txt
95
+ - db/at/2012_13/cup_fixtures.rb
87
96
  - db/at/teams.rb
88
97
  - db/cl/2011_12/cl.rb
89
98
  - db/cl/2011_12/el.rb
@@ -108,7 +117,10 @@ files:
108
117
  - db/ro/teams.rb
109
118
  - db/world/quali_2012_13.rb
110
119
  - db/world/quali_2012_13_c.rb
120
+ - db/world/quali_2012_13_c.txt
121
+ - db/world/quali_2012_13_fixtures.rb
111
122
  - db/world/quali_2012_13_i.rb
123
+ - db/world/quali_2012_13_i.txt
112
124
  - lib/sportdb.rb
113
125
  - lib/sportdb/cli/opts.rb
114
126
  - lib/sportdb/cli/runner.rb