worlddb 2.0.9 → 2.1.0
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.
- checksums.yaml +4 -4
- data/HISTORY.md +1 -1
- data/Manifest.txt +1 -38
- data/README.md +0 -67
- data/Rakefile +7 -11
- data/lib/worlddb.rb +8 -187
- data/lib/worlddb/cli/main.rb +3 -8
- data/lib/worlddb/{version.rb → cli/version.rb} +9 -7
- data/lib/worlddb/console.rb +5 -10
- metadata +10 -110
- data/.gemtest +0 -0
- data/lib/worlddb/deleter.rb +0 -32
- data/lib/worlddb/matcher.rb +0 -143
- data/lib/worlddb/models/city.rb +0 -240
- data/lib/worlddb/models/city_comp.rb +0 -27
- data/lib/worlddb/models/continent.rb +0 -41
- data/lib/worlddb/models/continent_comp.rb +0 -24
- data/lib/worlddb/models/country.rb +0 -328
- data/lib/worlddb/models/country_code.rb +0 -41
- data/lib/worlddb/models/country_comp.rb +0 -35
- data/lib/worlddb/models/forward.rb +0 -57
- data/lib/worlddb/models/lang.rb +0 -18
- data/lib/worlddb/models/lang_comp.rb +0 -23
- data/lib/worlddb/models/name.rb +0 -13
- data/lib/worlddb/models/place.rb +0 -16
- data/lib/worlddb/models/region.rb +0 -176
- data/lib/worlddb/models/region_comp.rb +0 -26
- data/lib/worlddb/models/tagdb/tag.rb +0 -16
- data/lib/worlddb/models/tagdb/tagging.rb +0 -15
- data/lib/worlddb/models/usage.rb +0 -17
- data/lib/worlddb/patterns.rb +0 -54
- data/lib/worlddb/reader.rb +0 -224
- data/lib/worlddb/reader_file.rb +0 -86
- data/lib/worlddb/reader_zip.rb +0 -160
- data/lib/worlddb/readers/city.rb +0 -81
- data/lib/worlddb/readers/country.rb +0 -78
- data/lib/worlddb/readers/lang.rb +0 -107
- data/lib/worlddb/readers/region.rb +0 -79
- data/lib/worlddb/readers/usage.rb +0 -98
- data/lib/worlddb/schema.rb +0 -202
- data/lib/worlddb/stats.rb +0 -31
- data/test/helper.rb +0 -29
- data/test/test_fixture_matchers.rb +0 -112
- data/test/test_model_city.rb +0 -60
- data/test/test_model_comp.rb +0 -48
- data/test/test_model_country.rb +0 -53
- data/test/test_model_region.rb +0 -50
- data/test/test_models.rb +0 -35
data/lib/worlddb/stats.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module WorldDb
|
4
|
-
|
5
|
-
class Stats
|
6
|
-
include Models
|
7
|
-
|
8
|
-
def tables
|
9
|
-
puts "Stats:"
|
10
|
-
puts " #{'%5d' % Continent.count} continents"
|
11
|
-
puts " #{'%5d' % Country.count} countries (#{Country.where(s: true).count} supras, #{Country.where(d:true).count} deps), #{Country.where(m:true).count} miscs)"
|
12
|
-
puts " #{'%5d' % Region.count} regions"
|
13
|
-
puts " #{'%5d' % City.where(m: true).where(c: false).count} metros"
|
14
|
-
puts " #{'%5d' % City.where(c: true).count} cities (#{City.where(c: true).where(m: true).count} metros)"
|
15
|
-
puts " #{'%5d' % City.where(d: true).count} districts"
|
16
|
-
puts " #{'%5d' % Place.count} places"
|
17
|
-
puts " #{'%5d' % Name.count} names"
|
18
|
-
|
19
|
-
puts " #{'%5d' % Lang.count} langs"
|
20
|
-
puts " #{'%5d' % Usage.count} usages"
|
21
|
-
|
22
|
-
puts " #{'%5d' % CountryCode.count} (country) codes"
|
23
|
-
|
24
|
-
# puts " #{'%5d' % Tag.count} tags"
|
25
|
-
# puts " #{'%5d' % Tagging.count} taggings"
|
26
|
-
end
|
27
|
-
|
28
|
-
end # class Stats
|
29
|
-
|
30
|
-
end # module WorldDb
|
31
|
-
|
data/test/helper.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
|
2
|
-
## $:.unshift(File.dirname(__FILE__))
|
3
|
-
|
4
|
-
## minitest setup
|
5
|
-
|
6
|
-
# require 'minitest/unit'
|
7
|
-
require 'minitest/autorun'
|
8
|
-
|
9
|
-
|
10
|
-
# our own code
|
11
|
-
|
12
|
-
require 'worlddb'
|
13
|
-
require 'logutils/db' # NB: explict require required for LogDb (not automatic)
|
14
|
-
|
15
|
-
|
16
|
-
Name = WorldDb::Model::Name
|
17
|
-
Place = WorldDb::Model::Place
|
18
|
-
Continent = WorldDb::Model::Continent
|
19
|
-
Country = WorldDb::Model::Country
|
20
|
-
Region = WorldDb::Model::Region
|
21
|
-
City = WorldDb::Model::City
|
22
|
-
|
23
|
-
Lang = WorldDb::Model::Lang
|
24
|
-
Usage = WorldDb::Model::Usage
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
WorldDb.setup_in_memory_db
|
29
|
-
|
@@ -1,112 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'helper'
|
4
|
-
|
5
|
-
|
6
|
-
class TestFixtureMatchers < MiniTest::Test
|
7
|
-
|
8
|
-
include WorldDb::Matcher
|
9
|
-
|
10
|
-
|
11
|
-
def test_cities_for_country
|
12
|
-
|
13
|
-
cities_at = [
|
14
|
-
'europe/at/cities',
|
15
|
-
'europe/at-austria/cities',
|
16
|
-
'at-austria/cities',
|
17
|
-
'at-austria!/cities',
|
18
|
-
'at-austria!/1--niederoesterreich--eastern--cities',
|
19
|
-
'at-austria!/1--niederoesterreich--eastern/cities', # region w/o code/abbrev
|
20
|
-
'at-austria!/1--niederoesterreich--eastern/1--waldviertel--cities'
|
21
|
-
]
|
22
|
-
|
23
|
-
cities_at.each do |name|
|
24
|
-
found = match_cities_for_country( name ) do |country_key|
|
25
|
-
assert_equal country_key, 'at'
|
26
|
-
end
|
27
|
-
assert found
|
28
|
-
end
|
29
|
-
end # method test_cities_for_country
|
30
|
-
|
31
|
-
def test_country
|
32
|
-
|
33
|
-
beers_at = [
|
34
|
-
'europe/at/beers',
|
35
|
-
'europe/at-austria/beers',
|
36
|
-
'europe/at-austria--beers',
|
37
|
-
'at-austria/beers',
|
38
|
-
'at-austria!/beers',
|
39
|
-
'1--at-austria--central/beers',
|
40
|
-
'1--at-austria--central/1--niederoesterreich--eastern--beers',
|
41
|
-
'europe/1--at-austria--central/beers',
|
42
|
-
'europe/1--at-austria--central/1--niederosterreich--eastern--beers',
|
43
|
-
'at-austria!/1--niederoesterreich--eastern--beers',
|
44
|
-
'at-austria!/1--niederoesterreich--eastern/beers', # region w/o code/abbrev
|
45
|
-
'at-austria!/1--niederoesterreich--eastern/1--waldviertel--beers'
|
46
|
-
]
|
47
|
-
|
48
|
-
beers_at.each do |name|
|
49
|
-
found = match_xxx_for_country( name, 'beers' ) do |country_key|
|
50
|
-
assert_equal country_key, 'at'
|
51
|
-
end
|
52
|
-
assert found, "no match found for '#{name}'"
|
53
|
-
end
|
54
|
-
|
55
|
-
breweries_at = [
|
56
|
-
'europe/at/breweries',
|
57
|
-
'europe/at-austria/breweries',
|
58
|
-
'at-austria/breweries',
|
59
|
-
'at-austria!/breweries'
|
60
|
-
]
|
61
|
-
|
62
|
-
breweries_at.each do |name|
|
63
|
-
found = match_xxx_for_country( name, 'breweries' ) do |country_key|
|
64
|
-
assert_equal country_key, 'at'
|
65
|
-
end
|
66
|
-
assert found
|
67
|
-
end
|
68
|
-
end # method test_country
|
69
|
-
|
70
|
-
|
71
|
-
def test_country_n_region
|
72
|
-
|
73
|
-
beers_at = [
|
74
|
-
'europe/at-austria/w-wien/beers',
|
75
|
-
'at-austria/w-wien/beers',
|
76
|
-
'at-austria/w-wien/2--leopoldstadt--beers',
|
77
|
-
'at-austria!/w-wien/beers',
|
78
|
-
'1--at-austria--central/1--w-wien--eastern/beers',
|
79
|
-
'1--at-austria--central/1--w-wien--eastern/2--leopoldstadt--beers',
|
80
|
-
'europe/1--at-austria--central/1--w-wien--eastern/beers',
|
81
|
-
'at-austria/1--w-wien--eastern/beers',
|
82
|
-
'europe/at-austria!/1--w-wien--eastern/beers',
|
83
|
-
'1--at-austria--central/w-wien/beers',
|
84
|
-
'europe/1--at-austria--central/w-wien/beers',
|
85
|
-
'europe/1--at-austria--central/w-wien/2--leopoldstadt--beers'
|
86
|
-
]
|
87
|
-
|
88
|
-
beers_at.each do |name|
|
89
|
-
found = match_xxx_for_country_n_region( name, 'beers' ) do |country_key,region_key|
|
90
|
-
assert_equal country_key, 'at'
|
91
|
-
assert_equal region_key, 'w'
|
92
|
-
end
|
93
|
-
assert found
|
94
|
-
end
|
95
|
-
|
96
|
-
breweries_at = [
|
97
|
-
'europe/at-austria/w-wien/breweries',
|
98
|
-
'at-austria/w-wien/breweries',
|
99
|
-
'at-austria!/w-wien/breweries'
|
100
|
-
]
|
101
|
-
|
102
|
-
breweries_at.each do |name|
|
103
|
-
found = match_xxx_for_country_n_region( name, 'breweries' ) do |country_key,region_key|
|
104
|
-
assert_equal country_key, 'at'
|
105
|
-
assert_equal region_key, 'w'
|
106
|
-
end
|
107
|
-
assert found
|
108
|
-
end
|
109
|
-
end # method test_country_n_region
|
110
|
-
|
111
|
-
|
112
|
-
end # class TestFixtureMatchers
|
data/test/test_model_city.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
|
4
|
-
require 'helper'
|
5
|
-
|
6
|
-
class TestModelCity < MiniTest::Test
|
7
|
-
|
8
|
-
def setup
|
9
|
-
# delete all countries, regions, cities in in-memory only db
|
10
|
-
WorldDb.delete!
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_load_values
|
14
|
-
|
15
|
-
at = Country.create!( key: 'at',
|
16
|
-
name: 'Austria',
|
17
|
-
code: 'AUT',
|
18
|
-
pop: 8_414_638,
|
19
|
-
area: 83_871 )
|
20
|
-
|
21
|
-
w = Region.create!( key: 'w',
|
22
|
-
name: 'Wien',
|
23
|
-
country_id: at.id )
|
24
|
-
|
25
|
-
new_attributes = {
|
26
|
-
key: 'wien',
|
27
|
-
name: 'Wien',
|
28
|
-
alt_names: '',
|
29
|
-
country_id: at.id
|
30
|
-
}
|
31
|
-
|
32
|
-
values = [
|
33
|
-
'W',
|
34
|
-
'1_731_236',
|
35
|
-
'm:1_724_000'
|
36
|
-
]
|
37
|
-
|
38
|
-
c = City.create_or_update_from_attribs( new_attributes, values )
|
39
|
-
|
40
|
-
c2 = City.find_by_key!( new_attributes[:key] )
|
41
|
-
assert_equal c2.id, c.id
|
42
|
-
|
43
|
-
assert_equal new_attributes[:name], c.name
|
44
|
-
assert_equal 1_731_236, c.pop
|
45
|
-
assert_equal 1_724_000, c.popm
|
46
|
-
assert_equal true, c.m
|
47
|
-
assert_equal w.id, c.region_id
|
48
|
-
assert_equal at.id, c.country_id
|
49
|
-
|
50
|
-
### test place
|
51
|
-
assert_equal new_attributes[:name], c.place.name
|
52
|
-
|
53
|
-
## test assocs
|
54
|
-
assert_equal 'Wien', c.region.name
|
55
|
-
assert_equal 'Austria', c.region.country.name
|
56
|
-
assert_equal 'Austria', c.country.name
|
57
|
-
end
|
58
|
-
|
59
|
-
|
60
|
-
end # class TestModelCity
|
data/test/test_model_comp.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
|
4
|
-
require 'helper'
|
5
|
-
|
6
|
-
class TestModelComp < MiniTest::Test
|
7
|
-
|
8
|
-
def setup
|
9
|
-
# delete all countries, regions, cities in in-memory only db
|
10
|
-
WorldDb.delete!
|
11
|
-
end
|
12
|
-
|
13
|
-
|
14
|
-
def test_title
|
15
|
-
at = Country.create!( key: 'at',
|
16
|
-
title: 'Austria',
|
17
|
-
code: 'AUT',
|
18
|
-
pop: 8_414_638,
|
19
|
-
area: 83_871 )
|
20
|
-
|
21
|
-
w = Region.create!( key: 'w',
|
22
|
-
title: 'Wien',
|
23
|
-
country_id: at.id )
|
24
|
-
|
25
|
-
new_attributes = {
|
26
|
-
key: 'wien',
|
27
|
-
title: 'Wien'
|
28
|
-
}
|
29
|
-
|
30
|
-
c = City.create!( key: new_attributes[:key],
|
31
|
-
title: new_attributes[:title], # note: assign "old" title attrib
|
32
|
-
region_id: w.id,
|
33
|
-
country_id: at.id )
|
34
|
-
|
35
|
-
c2 = City.find_by_key!( new_attributes[:key] )
|
36
|
-
assert_equal c2.id, c.id
|
37
|
-
|
38
|
-
assert_equal new_attributes[:title], c.name
|
39
|
-
assert_equal new_attributes[:title], c.title
|
40
|
-
assert_equal new_attributes[:key], c.key
|
41
|
-
assert_equal false, c.m
|
42
|
-
assert_equal w.id, c.region_id
|
43
|
-
assert_equal at.id, c.country_id
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
|
-
end # class TestModelComp
|
48
|
-
|
data/test/test_model_country.rb
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'helper'
|
4
|
-
|
5
|
-
class TestModelCountry < MiniTest::Test
|
6
|
-
|
7
|
-
def setup
|
8
|
-
# delete all countries, regions, cities in in-memory only db
|
9
|
-
WorldDb.delete!
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_to_path
|
13
|
-
eu = Continent.create!( key: 'eu', name: 'Europe' )
|
14
|
-
assert_equal 'europe', eu.slug
|
15
|
-
|
16
|
-
at = Country.create!( key: 'at', name: 'Austria', code: 'AUT', area: 83_871, pop: 8_414_638, continent: eu )
|
17
|
-
assert_equal 'austria', at.slug
|
18
|
-
|
19
|
-
assert_equal 'europe/at-austria', at.to_path
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_load_values
|
23
|
-
|
24
|
-
new_attributes = {
|
25
|
-
key: 'at',
|
26
|
-
name: 'Austria',
|
27
|
-
alt_names: ''
|
28
|
-
}
|
29
|
-
|
30
|
-
values = [
|
31
|
-
'AUT',
|
32
|
-
'83_871',
|
33
|
-
'8_414_638',
|
34
|
-
'un|fifa|uefa|eu|euro|schengen|central_europe|western_europe'
|
35
|
-
]
|
36
|
-
|
37
|
-
c = Country.create_or_update_from_attribs( new_attributes, values )
|
38
|
-
|
39
|
-
c2 = Country.find_by_key!( new_attributes[:key] )
|
40
|
-
assert_equal c.id, c2.id
|
41
|
-
|
42
|
-
assert_equal new_attributes[:name], c.name
|
43
|
-
assert_equal 8_414_638, c.pop
|
44
|
-
assert_equal 83_871, c.area
|
45
|
-
## todo: assert tag count; add supra:eu etc.
|
46
|
-
|
47
|
-
### test place
|
48
|
-
assert_equal new_attributes[:name], c.place.name
|
49
|
-
end
|
50
|
-
|
51
|
-
|
52
|
-
end # class TestModelCountry
|
53
|
-
|
data/test/test_model_region.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
|
4
|
-
require 'helper'
|
5
|
-
|
6
|
-
class TestModelRegion < MiniTest::Test
|
7
|
-
|
8
|
-
def setup
|
9
|
-
# delete all countries, regions, cities in in-memory only db
|
10
|
-
WorldDb.delete!
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_load_values
|
14
|
-
|
15
|
-
at = Country.create!( key: 'at',
|
16
|
-
name: 'Austria',
|
17
|
-
code: 'AUT',
|
18
|
-
pop: 8_414_638,
|
19
|
-
area: 83_871 )
|
20
|
-
|
21
|
-
new_attributes = {
|
22
|
-
key: 'w',
|
23
|
-
name: 'Wien',
|
24
|
-
alt_names: '',
|
25
|
-
country_id: at.id
|
26
|
-
}
|
27
|
-
|
28
|
-
values = [
|
29
|
-
'415 km²',
|
30
|
-
'eastern austria'
|
31
|
-
]
|
32
|
-
|
33
|
-
r = Region.create_or_update_from_attribs( new_attributes, values )
|
34
|
-
|
35
|
-
r2 = Region.find_by_key!( new_attributes[:key] )
|
36
|
-
assert_equal r.id, r2.id
|
37
|
-
|
38
|
-
assert_equal new_attributes[:name], r.name
|
39
|
-
assert_equal 415, r.area
|
40
|
-
assert_equal at.id, r.country_id
|
41
|
-
|
42
|
-
### test place
|
43
|
-
assert_equal new_attributes[:name], r.place.name
|
44
|
-
|
45
|
-
## test assocs
|
46
|
-
assert_equal 'Austria', r.country.name
|
47
|
-
end
|
48
|
-
|
49
|
-
end # class TestModelRegion
|
50
|
-
|
data/test/test_models.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
|
4
|
-
require 'helper'
|
5
|
-
|
6
|
-
class TestModels < MiniTest::Test
|
7
|
-
|
8
|
-
def setup
|
9
|
-
# delete all countries, regions, cities in in-memory only db
|
10
|
-
WorldDb.delete!
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_counts
|
14
|
-
assert_equal 0, Name.count
|
15
|
-
assert_equal 0, Place.count
|
16
|
-
assert_equal 0, Continent.count
|
17
|
-
assert_equal 0, Country.count
|
18
|
-
assert_equal 0, Region.count
|
19
|
-
assert_equal 0, City.count
|
20
|
-
|
21
|
-
assert_equal 0, Lang.count
|
22
|
-
assert_equal 0, Usage.count
|
23
|
-
|
24
|
-
WorldDb.tables
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_place_assoc_counts
|
28
|
-
# assert_equal 0, Continent.new.place.count
|
29
|
-
# assert_equal 0, Country.new.place.count
|
30
|
-
# assert_equal 0, Region.new.place.count
|
31
|
-
# assert_equal 0, City.new.place.count
|
32
|
-
end
|
33
|
-
|
34
|
-
end # class TestModels
|
35
|
-
|