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.
- data/lib/worlddb/reader.rb +16 -49
- data/lib/worlddb/version.rb +1 -1
- metadata +12 -12
data/lib/worlddb/reader.rb
CHANGED
@@ -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(
|
35
|
-
|
38
|
+
def load_setup( name )
|
39
|
+
path = "#{include_path}/#{name}.yml"
|
36
40
|
|
37
|
-
|
38
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
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 =
|
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?
|
data/lib/worlddb/version.rb
CHANGED
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.
|
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-
|
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: &
|
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: *
|
24
|
+
version_requirements: *83827050
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: commander
|
27
|
-
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: *
|
35
|
+
version_requirements: *83826830
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activerecord
|
38
|
-
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: *
|
46
|
+
version_requirements: *83826620
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rdoc
|
49
|
-
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: *
|
57
|
+
version_requirements: *83826400
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: hoe
|
60
|
-
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: *
|
68
|
+
version_requirements: *83826180
|
69
69
|
description: worlddb - world.db command line tool
|
70
70
|
email: opensport@googlegroups.com
|
71
71
|
executables:
|