worlddb 1.6.3 → 1.6.4

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.
Files changed (3) hide show
  1. data/lib/worlddb/reader.rb +16 -49
  2. data/lib/worlddb/version.rb +1 -1
  3. metadata +12 -12
@@ -9,6 +9,10 @@ class Reader
9
9
  ## make models available in sportdb module by default with namespace
10
10
  # e.g. lets you use City instead of Models::City
11
11
  include WorldDb::Models
12
+
13
+
14
+ ## value helpers e.g. is_year?, is_taglist? etc.
15
+ include TextUtils::ValueHelper
12
16
 
13
17
  attr_reader :include_path
14
18
 
@@ -31,62 +35,25 @@ class Reader
31
35
  end
32
36
 
33
37
 
34
- def load_setup( setup )
35
- ary = load_fixture_setup( setup )
38
+ def load_setup( name )
39
+ path = "#{include_path}/#{name}.yml"
36
40
 
37
- ### fix/todo:
38
- # use to setups - use comment to remove fixtures
41
+ logger.info "parsing data '#{name}' (#{path})..."
42
+
43
+ reader = FixtureReader.new( path )
39
44
 
40
45
  # too big for heroku free db plan (10,000 record limit)
41
46
  # - sorry, can't load by default
42
47
  fixture_excludes = [
43
48
  'south-america/ve/cities'
44
49
  ]
45
-
46
- ary = ary - fixture_excludes
47
-
48
- ary.each do |name|
49
- load( name )
50
- end
51
- end # method load_setup
52
-
53
-
54
- ## fix/todo: rename ??
55
- def load_fixture_setup( name )
56
-
57
- ## todo/fix: cleanup quick and dirty code
58
-
59
- path = "#{include_path}/#{name}.yml"
60
-
61
- logger.info "parsing data '#{name}' (#{path})..."
62
50
 
63
- text = File.read_utf8( path )
64
-
65
- hash = YAML.load( text )
66
-
67
- ### build up array for fixtures from hash
68
-
69
- ary = []
70
-
71
- hash.each do |key_wild, value_wild|
72
- key = key_wild.to_s.strip
51
+ reader.each do |fixture_name|
52
+ next if fixture_excludes.include?( fixture_name ) # skip loading
73
53
 
74
- logger.debug "yaml key:#{key_wild.class.name} >>#{key}<<, value:#{value_wild.class.name} >>#{value_wild}<<"
75
-
76
- if value_wild.kind_of?( String ) # assume single fixture name
77
- ary << value_wild
78
- elsif value_wild.kind_of?( Array ) # assume array of fixture names as strings
79
- ary = ary + value_wild
80
- else
81
- logger.error "unknow fixture type in setup (yaml key:#{key_wild.class.name} >>#{key}<<, value:#{value_wild.class.name} >>#{value_wild}<<); skipping"
82
- end
54
+ load( fixture_name )
83
55
  end
84
-
85
- logger.debug "fixture setup:"
86
- logger.debug ary.to_json
87
-
88
- ary
89
- end # load_fixture_setup
56
+ end # method load_setup
90
57
 
91
58
 
92
59
  def load( name )
@@ -467,7 +434,7 @@ private
467
434
  value_popm = value_popm_str.gsub(/[ _]/, '').to_i
468
435
  attribs[ :popm ] = value_popm
469
436
  attribs[ :m ] = true # auto-mark city as m|metro too
470
- elsif value =~ /^[A-Z]{2}$/ && clazz == City ## assume region code e.g. TX for city
437
+ elsif is_region?( value ) && clazz == City ## assume region code e.g. TX for city
471
438
  value_region = Region.find_by_key_and_country_id!( value.downcase, attribs[:country_id] )
472
439
  attribs[ :region_id ] = value_region.id
473
440
  elsif value =~ /^[A-Z]{2,3}$/ ## assume two or three-letter code
@@ -477,7 +444,7 @@ private
477
444
  value_numbers << value.gsub( 'km2', '').gsub( 'km²', '' ).gsub(/[ _]/, '').to_i
478
445
  elsif value =~ /^([0-9][0-9 _]+[0-9])|([0-9]{1,2})$/ ## numeric (nb: can use any _ or spaces inside digits e.g. 1_000_000 or 1 000 000)
479
446
  value_numbers << value.gsub(/[ _]/, '').to_i
480
- elsif (values.size==(index+1)) && value =~ /^[a-z0-9\|_ ]+$/ # tags must be last entry
447
+ elsif (values.size==(index+1)) && is_taglist?( value ) # tags must be last entry
481
448
 
482
449
  logger.debug " found tags: >>#{value}<<"
483
450
 
@@ -584,7 +551,7 @@ private
584
551
  value_cities.each do |city_title|
585
552
 
586
553
  city_attribs = {}
587
- city_key = reader.title_to_key( city_title )
554
+ city_key = TextUtils.title_to_key( city_title )
588
555
 
589
556
  ## check if it exists
590
557
  ## todo/fix: add country_id for lookup?
@@ -1,6 +1,6 @@
1
1
 
2
2
  module WorldDb
3
- VERSION = '1.6.3' # sync version w/ sport.db - why? why not?
3
+ VERSION = '1.6.4' # sync version w/ sport.db - why? why not?
4
4
  end
5
5
 
6
6
  ###########################################
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: worlddb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: 1.6.4
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-03-17 00:00:00.000000000 Z
12
+ date: 2013-05-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: textutils
16
- requirement: &78539180 !ruby/object:Gem::Requirement
16
+ requirement: &83827050 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.5'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *78539180
24
+ version_requirements: *83827050
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: commander
27
- requirement: &78538960 !ruby/object:Gem::Requirement
27
+ requirement: &83826830 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 4.1.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *78538960
35
+ version_requirements: *83826830
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activerecord
38
- requirement: &78538750 !ruby/object:Gem::Requirement
38
+ requirement: &83826620 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '3.2'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *78538750
46
+ version_requirements: *83826620
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rdoc
49
- requirement: &78538530 !ruby/object:Gem::Requirement
49
+ requirement: &83826400 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '3.10'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *78538530
57
+ version_requirements: *83826400
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hoe
60
- requirement: &78538290 !ruby/object:Gem::Requirement
60
+ requirement: &83826180 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '3.3'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *78538290
68
+ version_requirements: *83826180
69
69
  description: worlddb - world.db command line tool
70
70
  email: opensport@googlegroups.com
71
71
  executables: