worlddb 0.6.1 → 0.6.2
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/db/america/br/cities.txt +3 -0
- data/db/america/countries.txt +2 -2
- data/db/europe/be/cities.txt +1 -1
- data/db/europe/be/regions.txt +2 -1
- data/db/europe/de/cities.txt +3 -3
- data/db/europe/es/regions.txt +2 -2
- data/lib/worlddb/console.rb +8 -0
- data/lib/worlddb/models/city.rb +11 -0
- data/lib/worlddb/models/country.rb +15 -0
- data/lib/worlddb/models/region.rb +12 -0
- data/lib/worlddb/readers/values_reader.rb +10 -9
- data/lib/worlddb/version.rb +1 -1
- metadata +4 -4
data/db/america/br/cities.txt
CHANGED
data/db/america/countries.txt
CHANGED
@@ -7,8 +7,8 @@
|
|
7
7
|
# area (in sq km), pop(ulation)
|
8
8
|
|
9
9
|
ca, Canada, CAN, 9984670, 34278406, north america|en|fr
|
10
|
-
mx, Mexico, MEX, 1972550, 112322757, north america|
|
11
|
-
us, United States, USA, 9629091, 314167157, north america|es
|
10
|
+
mx, Mexico, MEX, 1972550, 112322757, north america|es
|
11
|
+
us, United States, USA, 9629091, 314167157, north america|en|es
|
12
12
|
|
13
13
|
#####################
|
14
14
|
## central america & caribbean islands
|
data/db/europe/be/cities.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
|
3
|
-
brussel, Brussel|Bruxelles [Brussels], region:
|
3
|
+
brussel, Brussel|Bruxelles [Brussels], region:bx, 1_048_491, m:1_929_000 , # nl|fr|en
|
4
4
|
antwerp, Antwerpen|Anvers [Antwerp], region:an, 466_203, m:960_000
|
5
5
|
ghent, Gent|Gand [Ghent], region:ov, 235_143
|
6
6
|
charleroi, Charleroi, region:ht, 201_550
|
data/db/europe/be/regions.txt
CHANGED
@@ -5,8 +5,9 @@
|
|
5
5
|
#
|
6
6
|
# NB: using iso three letter codes (cut off first letter is always V or W for NUTS1 region)
|
7
7
|
|
8
|
+
## todo: check what code to use for bruxeelles -> br is taken by Babant Wallon
|
8
9
|
|
9
|
-
|
10
|
+
bx, Bruxelles|Brussel [Brussels (Capital Region)], 161
|
10
11
|
|
11
12
|
an, Antwerpen [Antwerp], 2_867, flanders|nl
|
12
13
|
li, Limburg, 2_422, flanders|nl
|
data/db/europe/de/cities.txt
CHANGED
@@ -5,8 +5,8 @@
|
|
5
5
|
## - http://en.wikipedia.org/wiki/Largest_urban_areas_of_the_European_Union
|
6
6
|
|
7
7
|
|
8
|
-
ruhr, Ruhrgebiet [Ruhr area], region:nw, m:7_304_000, metro
|
9
|
-
koelnbonn, Köln/Bonn [Cologne-Bonn], region:nw, m:2_063_000, metro
|
8
|
+
ruhr, Ruhrgebiet [Ruhr area], region:nw, m:7_304_000, metro # includes essen, bochum, dortmund, gelsenkirchen
|
9
|
+
koelnbonn, Köln/Bonn [Cologne-Bonn], region:nw, m:2_063_000, metro # includes koeln, leverkusen, bergischgladbach, bonn
|
10
10
|
|
11
11
|
|
12
12
|
# Top 10 cities
|
@@ -15,7 +15,7 @@ berlin, Berlin, region:be, 3_501_872, m:3_453_000
|
|
15
15
|
hamburg, Hamburg, region:hh, 1_798_836, m:1_794_000
|
16
16
|
muenchen, München [Munich], region:by, 1_378_176, m:1_355_000
|
17
17
|
koeln, Köln, region:nw, 1_017_155, metro:koelnbonn,
|
18
|
-
frankfurt, Frankfurt, region:he, 691_518 m:2_300_000
|
18
|
+
frankfurt, Frankfurt, region:he, 691_518 m:2_300_000 # frankfurt metro includes wiesbaden, darmstadt
|
19
19
|
stuttgart, Stuttgart, region:bw, 613_392, m:1_272_000
|
20
20
|
duesseldorf, Düsseldorf, region:nw, 592_393
|
21
21
|
dortmund, Dortmund, region:nw, 580_956, metro:ruhr
|
data/db/europe/es/regions.txt
CHANGED
@@ -6,7 +6,7 @@ an, Andalucía|Andalusia, 87598
|
|
6
6
|
ar, Aragón, 47720
|
7
7
|
as, Asturias, 10604
|
8
8
|
ib, Illes Balears|Balearic Islands, 4992
|
9
|
-
pv, Pais Vasco|Basque Country 7235
|
9
|
+
pv, Pais Vasco|Basque Country, 7235
|
10
10
|
cn, Canarias|Canary Islands, 7447
|
11
11
|
cb, Cantábria, 5321
|
12
12
|
cl, Castilla y León, 94225
|
@@ -17,7 +17,7 @@ ga, Galicia, 29574
|
|
17
17
|
ri, La Rioja, 5045
|
18
18
|
md, Madrid, 8028
|
19
19
|
mc, Murcia, 11313
|
20
|
-
na, Navarra
|
20
|
+
na, Navarra, 10390
|
21
21
|
vc, Valencia, 23255
|
22
22
|
|
23
23
|
## autonomous cities
|
data/lib/worlddb/console.rb
CHANGED
@@ -55,6 +55,9 @@ AT = Country.find_by_key( 'at' )
|
|
55
55
|
DE = Country.find_by_key( 'de' )
|
56
56
|
EN = Country.find_by_key( 'en' )
|
57
57
|
|
58
|
+
GB = Country.find_by_key( 'gb' )
|
59
|
+
EU = Country.find_by_key( 'eu' )
|
60
|
+
|
58
61
|
US = Country.find_by_key( 'us' )
|
59
62
|
CA = Country.find_by_key( 'ca' )
|
60
63
|
MX = Country.find_by_key( 'mx' )
|
@@ -67,6 +70,11 @@ VIE = City.find_by_key( 'wien' )
|
|
67
70
|
|
68
71
|
## todo: add some predefined tags (e.g. europe, america, g8, euro, etc.)
|
69
72
|
|
73
|
+
EURO = Tag.find_by_key( 'euro' )
|
74
|
+
EUROPE = Tag.find_by_key( 'europe' )
|
75
|
+
ASIA = Tag.find_by_key( 'asia' )
|
76
|
+
PACIFIC = Tag.find_by_key( 'pacific' )
|
77
|
+
|
70
78
|
|
71
79
|
## turn on activerecord logging to console
|
72
80
|
|
data/lib/worlddb/models/city.rb
CHANGED
@@ -15,6 +15,17 @@ class City < ActiveRecord::Base
|
|
15
15
|
validates :code, :format => { :with => /^[A-Z_]{3}$/, :message => 'expected three uppercase letters A-Z (and _)' }, :allow_nil => true
|
16
16
|
|
17
17
|
|
18
|
+
def title_w_synonyms
|
19
|
+
return title if synonyms.blank?
|
20
|
+
|
21
|
+
buf = ''
|
22
|
+
buf << title
|
23
|
+
buf << ' | '
|
24
|
+
buf << synonyms.split('|').join(' | ')
|
25
|
+
buf
|
26
|
+
end
|
27
|
+
|
28
|
+
|
18
29
|
def self.create_from_ary!( cities, more_values={} )
|
19
30
|
cities.each do |values|
|
20
31
|
|
@@ -7,6 +7,10 @@ class Country < ActiveRecord::Base
|
|
7
7
|
|
8
8
|
has_many :regions, :class_name => 'Region', :foreign_key => 'country_id'
|
9
9
|
has_many :cities, :class_name => 'City', :foreign_key => 'country_id'
|
10
|
+
|
11
|
+
## self referencing hierachy within countries e.g. EU > GB > EN
|
12
|
+
belongs_to :parent, :class_name => 'Country', :foreign_key => 'country_id'
|
13
|
+
has_many :countries, :class_name => 'Country', :foreign_key => 'country_id'
|
10
14
|
|
11
15
|
has_many :taggings, :as => :taggable
|
12
16
|
has_many :tags, :through => :taggings
|
@@ -15,6 +19,17 @@ class Country < ActiveRecord::Base
|
|
15
19
|
validates :code, :format => { :with => /^[A-Z_]{3}$/, :message => 'expected three uppercase letters A-Z (and _)' }
|
16
20
|
|
17
21
|
|
22
|
+
def title_w_synonyms
|
23
|
+
return title if synonyms.blank?
|
24
|
+
|
25
|
+
buf = ''
|
26
|
+
buf << title
|
27
|
+
buf << ' | '
|
28
|
+
buf << synonyms.split('|').join(' | ')
|
29
|
+
buf
|
30
|
+
end
|
31
|
+
|
32
|
+
|
18
33
|
def self.create_from_ary!( countries )
|
19
34
|
countries.each do |values|
|
20
35
|
|
@@ -12,6 +12,18 @@ class Region < ActiveRecord::Base
|
|
12
12
|
validates :key, :format => { :with => /^[a-z]{2,}$/, :message => 'expected two or more lowercase letters a-z' }
|
13
13
|
validates :code, :format => { :with => /^[A-Z_]{2,3}$/, :message => 'expected two or three uppercase letters A-Z (and _)' }, :allow_nil => true
|
14
14
|
|
15
|
+
|
16
|
+
def title_w_synonyms
|
17
|
+
return title if synonyms.blank?
|
18
|
+
|
19
|
+
buf = ''
|
20
|
+
buf << title
|
21
|
+
buf << ' | '
|
22
|
+
buf << synonyms.split('|').join(' | ')
|
23
|
+
buf
|
24
|
+
end
|
25
|
+
|
26
|
+
|
15
27
|
def self.create_from_ary!( regions, more_values={} )
|
16
28
|
regions.each do |values|
|
17
29
|
|
@@ -36,7 +36,15 @@ class ValuesReader
|
|
36
36
|
next
|
37
37
|
end
|
38
38
|
|
39
|
-
|
39
|
+
|
40
|
+
# pass 1) remove possible trailing eol comment
|
41
|
+
## e.g -> nyc, New York # Sample EOL Comment Here (with or without commas,,,,)
|
42
|
+
## becomes -> nyc, New York
|
43
|
+
|
44
|
+
line = line.sub( /\s+#.+$/, '' )
|
45
|
+
|
46
|
+
# pass 2) remove leading and trailing whitespace
|
47
|
+
|
40
48
|
line = line.strip
|
41
49
|
|
42
50
|
puts "line: >>#{line}<<"
|
@@ -47,6 +55,7 @@ class ValuesReader
|
|
47
55
|
|
48
56
|
values = values.map { |value| value.strip }
|
49
57
|
|
58
|
+
##### todo remove support of comment column? (NB: must NOT include commas)
|
50
59
|
# pass 2) remove comment columns
|
51
60
|
|
52
61
|
values = values.select do |value|
|
@@ -57,14 +66,6 @@ class ValuesReader
|
|
57
66
|
true
|
58
67
|
end
|
59
68
|
end
|
60
|
-
|
61
|
-
# pass 3) remove comments inside columns
|
62
|
-
|
63
|
-
values = values.map do |value|
|
64
|
-
value = value.sub( /\s+#.+$/, '' )
|
65
|
-
value
|
66
|
-
end
|
67
|
-
|
68
69
|
|
69
70
|
puts " values: >>#{values.join('<< >>')}<<"
|
70
71
|
|
data/lib/worlddb/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worlddb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 2
|
10
|
+
version: 0.6.2
|
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-11-
|
18
|
+
date: 2012-11-25 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: activerecord
|