sportdb 1.6.13 → 1.6.14

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.
File without changes
@@ -206,12 +206,8 @@ class LangChecker
206
206
  def initialize
207
207
  end
208
208
 
209
- def analyze( name, include_path )
209
+ def analyze( path )
210
210
  # return lang code e.g. en, de, es
211
-
212
- path = "#{include_path}/#{name}.txt"
213
-
214
- logger.info "parsing data '#{name}' (#{path})..."
215
211
 
216
212
  text = File.read_utf8( path )
217
213
 
@@ -2,13 +2,30 @@
2
2
 
3
3
  module SportDb
4
4
 
5
+ module Matcher
6
+
7
+ def match_leagues_for_country( name, &blk )
8
+ match_xxx_for_country( name, 'leagues', blk )
9
+ end
10
+
11
+ def match_teams_for_country( name, &blk )
12
+ match_xxx_for_country( name, 'teams', blk )
13
+ end
14
+
15
+ end # module Matcher
16
+
17
+
5
18
  class Reader
6
19
 
7
20
  include LogUtils::Logging
8
21
 
22
+
9
23
  ## make models available in sportdb module by default with namespace
10
24
  # e.g. lets you use Team instead of Models::Team
11
- include SportDB::Models
25
+ include SportDb::Models
26
+
27
+ include WorldDb::Matcher
28
+ include SportDb::Matcher # lets us use match_teams_for_country etc.
12
29
 
13
30
 
14
31
  attr_reader :include_path
@@ -98,7 +115,7 @@ class Reader
98
115
  # NB: assume @event is set from previous load
99
116
  race = Race.find_by_event_id_and_pos( @event.id, race_pos )
100
117
  load_records( name, race_id: race.id ) # e.g. 2013/04-gp-monaco.txt in formula1.db
101
- elsif name =~ /^seasons/
118
+ elsif name =~ /(?:^|\/)seasons/ # NB: ^seasons or also possible at-austria!/seasons
102
119
  load_seasons( name )
103
120
  elsif name =~ /^leagues/
104
121
  if name =~ /club/
@@ -108,18 +125,18 @@ class Reader
108
125
  # e.g. leagues
109
126
  load_leagues( name )
110
127
  end
111
- elsif name =~ /^([a-z]{2})\/leagues/
112
- # auto-add country code (from folder structure) for country-specific leagues
113
- # e.g. at/leagues
114
- country_key = $1
115
- country = Country.find_by_key!( country_key )
116
- load_leagues( name, club: true, country_id: country.id )
117
- elsif name =~ /^([a-z]{2})\/teams/
118
- # auto-add country code (from folder structure) for country-specific teams
119
- # e.g. at/teams at/teams.2 de/teams etc.
120
- country_key = $1
121
- country = Country.find_by_key!( country_key )
122
- load_teams( name, club: true, country_id: country.id )
128
+ elsif match_leagues_for_country( name ) do |country_key| # name =~ /^([a-z]{2})\/leagues/
129
+ # auto-add country code (from folder structure) for country-specific leagues
130
+ # e.g. at/leagues
131
+ country = Country.find_by_key!( country_key )
132
+ load_leagues( name, club: true, country_id: country.id )
133
+ end
134
+ elsif match_teams_for_country( name ) do |country_key| # name =~ /^([a-z]{2})\/teams/
135
+ # auto-add country code (from folder structure) for country-specific teams
136
+ # e.g. at/teams at/teams.2 de/teams etc.
137
+ country = Country.find_by_key!( country_key )
138
+ load_teams( name, club: true, country_id: country.id )
139
+ end
123
140
  elsif name =~ /\/teams/
124
141
  if name =~ /club/
125
142
  # club teams (many countries)
@@ -190,11 +207,7 @@ class Reader
190
207
 
191
208
  def load_seasons( name )
192
209
 
193
- path = "#{include_path}/#{name}.yml"
194
-
195
- logger.info "parsing data '#{name}' (#{path})..."
196
-
197
- reader = HashReader.new( path )
210
+ reader = HashReaderV2.new( name, include_path )
198
211
 
199
212
  ####
200
213
  ## fix!!!!!
@@ -239,22 +252,17 @@ class Reader
239
252
 
240
253
  end # each key,value
241
254
 
242
- Prop.create_from_fixture!( name, path )
243
-
244
255
  end # load_seasons
245
256
 
246
257
 
247
258
  def fetch_event( name )
248
259
  # get/fetch/find event from yml file
249
260
 
250
- path = "#{include_path}/#{name}.yml"
251
-
252
- logger.info "parsing data '#{name}' (#{path})..."
253
-
254
-
255
261
  ## todo/fix: use h = HashFile.load( path ) or similar instead of HashReader!!
256
262
 
257
- reader = HashReader.new( path )
263
+ ## todo/fix: add option for not adding prop automatically?? w/ HashReaderV2
264
+
265
+ reader = HashReaderV2.new( name, include_path )
258
266
 
259
267
  event_attribs = {}
260
268
 
@@ -289,11 +297,7 @@ class Reader
289
297
  ## use Event.create_or_update_from_hash_reader?? or similar
290
298
  # move parsing code to model
291
299
 
292
- path = "#{include_path}/#{name}.yml"
293
-
294
- logger.info "parsing data '#{name}' (#{path})..."
295
-
296
- reader = HashReader.new( path )
300
+ reader = HashReaderV2.new( name, include_path )
297
301
 
298
302
  event_attribs = {}
299
303
 
@@ -375,8 +379,6 @@ class Reader
375
379
 
376
380
  event.update_attributes!( event_attribs )
377
381
 
378
- Prop.create_from_fixture!( name, path )
379
-
380
382
  end # load_event
381
383
 
382
384
 
@@ -392,12 +394,24 @@ class Reader
392
394
  end
393
395
 
394
396
  def load_fixtures( event_key, name ) # load from file system
397
+
398
+ ## todo: move name_real_path code to LineReaderV2 ????
399
+ pos = name.index( '!/')
400
+ if pos.nil?
401
+ name_real_path = name # not found; real path is the same as name
402
+ else
403
+ # cut off everything until !/ e.g.
404
+ # at-austria!/w-wien/beers becomes
405
+ # w-wien/beers
406
+ name_real_path = name[ (pos+2)..-1 ]
407
+ end
408
+
395
409
 
396
- path = "#{include_path}/#{name}.txt"
410
+ path = "#{include_path}/#{name_real_path}.txt"
397
411
 
398
412
  logger.info "parsing data '#{name}' (#{path})..."
399
413
 
400
- SportDB.lang.lang = LangChecker.new.analyze( name, include_path )
414
+ SportDB.lang.lang = LangChecker.new.analyze( path )
401
415
 
402
416
  reader = LineReader.new( path )
403
417
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  module SportDb
3
- VERSION = '1.6.13'
3
+ VERSION = '1.6.14'
4
4
  end
5
5
 
6
6
  ###########################################
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.13
4
+ version: 1.6.14
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-09 00:00:00.000000000 Z
12
+ date: 2013-06-24 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: worlddb
16
- requirement: &72775370 !ruby/object:Gem::Requirement
16
+ requirement: &18220920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1.7'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *72775370
24
+ version_requirements: *18220920
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: commander
27
- requirement: &72775150 !ruby/object:Gem::Requirement
27
+ requirement: &18220452 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,36 +32,38 @@ dependencies:
32
32
  version: 4.1.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *72775150
35
+ version_requirements: *18220452
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rdoc
38
- requirement: &72774930 !ruby/object:Gem::Requirement
38
+ requirement: &18219588 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: '3.10'
43
+ version: '4.0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *72774930
46
+ version_requirements: *18219588
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: hoe
49
- requirement: &72774710 !ruby/object:Gem::Requirement
49
+ requirement: &18219000 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '3.3'
54
+ version: '3.6'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *72774710
57
+ version_requirements: *18219000
58
58
  description: sportdb - sport.db command line tool
59
59
  email: opensport@googlegroups.com
60
60
  executables:
61
61
  - sportdb
62
62
  extensions: []
63
63
  extra_rdoc_files:
64
+ - History.md
64
65
  - Manifest.txt
66
+ - README.md
65
67
  files:
66
68
  - History.md
67
69
  - Manifest.txt
@@ -149,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
151
  version: '0'
150
152
  requirements: []
151
153
  rubyforge_project: sportdb
152
- rubygems_version: 1.8.17
154
+ rubygems_version: 1.7.2
153
155
  signing_key:
154
156
  specification_version: 3
155
157
  summary: sportdb - sport.db command line tool