worlddb-models 2.2.2 → 2.3.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/Manifest.txt +31 -13
- data/README.md +7 -7
- data/Rakefile +1 -1
- data/lib/worlddb/deleter.rb +6 -1
- data/lib/worlddb/helpers/value_helper.rb +117 -0
- data/lib/worlddb/matcher.rb +99 -135
- data/lib/worlddb/matcher_adm.rb +82 -0
- data/lib/worlddb/models/city.rb +30 -208
- data/lib/worlddb/models/city_base.rb +220 -0
- data/lib/worlddb/models/continent.rb +9 -0
- data/lib/worlddb/models/country.rb +21 -4
- data/lib/worlddb/models/forward.rb +25 -9
- data/lib/worlddb/models/lang.rb +6 -0
- data/lib/worlddb/models/place.rb +1 -1
- data/lib/worlddb/models/state.rb +83 -0
- data/lib/worlddb/models/{region.rb → state_base.rb} +52 -36
- data/lib/worlddb/models/tagdb/tag.rb +1 -1
- data/lib/worlddb/models.rb +11 -8
- data/lib/worlddb/patterns.rb +4 -4
- data/lib/worlddb/reader.rb +68 -39
- data/lib/worlddb/reader_file.rb +36 -3
- data/lib/worlddb/reader_zip.rb +33 -3
- data/lib/worlddb/readers/base.rb +149 -0
- data/lib/worlddb/readers/city.rb +2 -65
- data/lib/worlddb/readers/country.rb +2 -63
- data/lib/worlddb/readers/lang.rb +3 -68
- data/lib/worlddb/readers/state.rb +61 -0
- data/lib/worlddb/readers/state_tree.rb +118 -0
- data/lib/worlddb/readers/usage.rb +2 -65
- data/lib/worlddb/schema.rb +142 -43
- data/lib/worlddb/stats.rb +7 -4
- data/lib/worlddb/tree_reader.rb +97 -0
- data/lib/worlddb/version.rb +2 -2
- data/test/adm/test_fixture_matcher_adm2.rb +73 -0
- data/test/{test_fixture_matcher_adm3.rb → adm/test_fixture_matcher_adm3.rb} +6 -6
- data/test/adm/test_fixture_matcher_tree.rb +52 -0
- data/test/{test_read_adm.rb → adm/test_read_adm.rb} +13 -20
- data/test/adm/test_read_tree.rb +63 -0
- data/test/data/at-austria/2--n-niederoesterreich/counties.txt +6 -4
- data/test/data/at-austria/orte.txt +23 -0
- data/test/data/at-austria/setups/tree.txt +9 -0
- data/test/data/de-deutschland/3--by-bayern/4--oberfranken/counties.txt +14 -13
- data/test/data/de-deutschland/3--by-bayern/4--oberfranken/orte.txt +104 -0
- data/test/data/de-deutschland/3--by-bayern/4--oberfranken/orte_ii.txt +17 -0
- data/test/data/de-deutschland/3--by-bayern/{districts.txt → parts.txt} +1 -1
- data/test/data/de-deutschland/orte.txt +12 -0
- data/test/data/de-deutschland/setups/adm.txt +1 -1
- data/test/data/de-deutschland/setups/tree.txt +9 -0
- data/test/helper.rb +8 -1
- data/test/test_fixture_matchers.rb +9 -10
- data/test/test_fixture_matchers_ii.rb +20 -19
- data/test/test_model_city.rb +26 -9
- data/test/{test_model_comp.rb → test_model_compat.rb} +15 -13
- data/test/test_model_country.rb +1 -1
- data/test/test_model_state.rb +54 -0
- data/test/test_model_states_at.rb +111 -0
- data/test/test_model_states_de.rb +147 -0
- data/test/test_models.rb +10 -3
- data/test/test_parse_city.rb +70 -0
- data/test/test_parse_country.rb +56 -0
- data/test/test_parse_state.rb +46 -0
- data/test/test_state_tree_reader_at.rb +54 -0
- data/test/test_state_tree_reader_de.rb +71 -0
- data/test/test_tree_reader.rb +39 -0
- metadata +50 -22
- data/lib/worlddb/models/city_compat.rb +0 -27
- data/lib/worlddb/models/continent_compat.rb +0 -24
- data/lib/worlddb/models/country_compat.rb +0 -35
- data/lib/worlddb/models/lang_compat.rb +0 -23
- data/lib/worlddb/models/region_compat.rb +0 -26
- data/lib/worlddb/readers/region.rb +0 -79
- data/test/test_fixture_matcher_adm2.rb +0 -62
- data/test/test_model_region.rb +0 -50
@@ -7,8 +7,9 @@
|
|
7
7
|
## ?? Gemeinden
|
8
8
|
## ?? Ortschaften
|
9
9
|
|
10
|
-
Krems an der Donau,
|
11
|
-
St. Pölten,
|
10
|
+
ks, Krems an der Donau (Stadt), 52 km², 24_085 # KS
|
11
|
+
p, St. Pölten (Stadt), 108 km², 52_145 # P
|
12
|
+
|
12
13
|
Waidhofen an der Ybbs, 132 km², 11_341 # WY
|
13
14
|
Wiener Neustadt, 61 km², 42_273 # WN
|
14
15
|
Amstetten, 1188 km², 112_944 # AM
|
@@ -19,13 +20,14 @@ Gmünd, 786 km², 37_420 # GD
|
|
19
20
|
Hollabrunn, 1011 km², 50_065 # HL
|
20
21
|
Horn, 784 km², 31_273 # HO
|
21
22
|
Korneuburg, 627 km², 76_370 # KO
|
22
|
-
|
23
|
+
|
24
|
+
kr, Krems-Land (Krems an der Donau), 924 km², 55_945 # KR
|
23
25
|
Lilienfeld, 932 km², 26_040 # LF
|
24
26
|
Melk, 1014 km², 76_369 # ME
|
25
27
|
Mistelbach, 1291 km², 74_150 # MI
|
26
28
|
Mödling, 277 km², 115_677 # MD
|
27
29
|
Neunkirchen, 1146 km², 85_539 # NK
|
28
|
-
St. Pölten-Land (St. Pölten), 1122 km², 97_365 # PL
|
30
|
+
pl, St. Pölten-Land (St. Pölten), 1122 km², 97_365 # PL
|
29
31
|
Scheibbs, 1023 km², 41_073 # SB
|
30
32
|
Tulln (Tulln an der Donau), 658 km², 72_104 # TU
|
31
33
|
Waidhofen an der Thaya, 669 km², 26_424 # WT
|
@@ -0,0 +1,23 @@
|
|
1
|
+
3 Niederösterreich
|
2
|
+
301 .. Krems an der Donau (Stadt)
|
3
|
+
30101 .... Krems an der Donau ## SS; 3500; 3506 3541
|
4
|
+
03148 ...... Gneixendorf ## 3500
|
5
|
+
03149 ...... Krems an der Donau ## 3500 3506
|
6
|
+
03150 ...... Landersdorf ## 3500
|
7
|
+
03151 ...... Lerchenfeld ## 3500
|
8
|
+
03152 ...... Rehberg ## 3500 3541
|
9
|
+
03153 ...... Stein an der Donau ## 3500
|
10
|
+
04164 ...... Egelsee ## 3500
|
11
|
+
04165 ...... Scheibenhof ## 3500
|
12
|
+
04237 ...... Angern ## 3506
|
13
|
+
04238 ...... Brunnkirchen ## 3506
|
14
|
+
04239 ...... Hollenburg ## 3506
|
15
|
+
04240 ...... Thallern ## 3506
|
16
|
+
302 .. St. Pölten (Stadt)
|
17
|
+
30201 .... St. Pölten ## SS; 3100; 3104 3105 3107 3140 3151 3385
|
18
|
+
03154 ...... Harland ## 3100 3104
|
19
|
+
03155 ...... Oberradlberg ## 3105
|
20
|
+
03156 ...... Oberwagram ## 3100
|
21
|
+
03157 ...... Ragelsdorf ## 3107
|
22
|
+
03158 ...... St. Pölten ## 3100 3104 3107 3151
|
23
|
+
03159 ...... Spratzern ## 3100 3151
|
@@ -20,23 +20,24 @@
|
|
20
20
|
|
21
21
|
# 4 kreisfreie Städte und
|
22
22
|
|
23
|
-
Bamberg (
|
24
|
-
Bayreuth (
|
25
|
-
Coburg (
|
26
|
-
Hof (
|
23
|
+
ba, Bamberg (Stadt)
|
24
|
+
bt, Bayreuth (Stadt)
|
25
|
+
co, Coburg (Stadt)
|
26
|
+
ho, Hof (Stadt)
|
27
27
|
|
28
28
|
|
29
29
|
# 9 Landkreise
|
30
30
|
## how to deal w/ same name?? (same keys)
|
31
31
|
## - use bambergland, bayreuthland etc. for key ??
|
32
32
|
|
33
|
-
Bamberg
|
34
|
-
Bayreuth
|
35
|
-
Coburg
|
36
|
-
Hof
|
33
|
+
baland, Bamberg (Land) ## (Landkreis)
|
34
|
+
btland, Bayreuth (Land) ## (Landkreis)
|
35
|
+
coland, Coburg (Land) ## (Landkreis)
|
36
|
+
holand, Hof (Land) ## (Landkreis)
|
37
|
+
|
38
|
+
fo, Forchheim ## Landkreis
|
39
|
+
kc, Kronach ## Landkreis
|
40
|
+
ku, Kulmbach ## Landkreis
|
41
|
+
lif, Lichtenfels ## Landkreis
|
42
|
+
wun, Wunsiedel i. Fichtelgebirge ## Landkreis
|
37
43
|
|
38
|
-
Forchheim (Landkreis)
|
39
|
-
Kronach (Landkreis)
|
40
|
-
Kulmbach (Landkreis)
|
41
|
-
Lichtenfels (Landkreis)
|
42
|
-
Wunsiedel im Fichtelgebirge (Landkreis)
|
@@ -0,0 +1,104 @@
|
|
1
|
+
2 Bayern
|
2
|
+
24 .. Oberfranken
|
3
|
+
241 .... Bamberg (Stadt) ## Kreisfreie Stadt
|
4
|
+
...... Bamberg
|
5
|
+
........ Bamberg
|
6
|
+
242 .... Bayreuth (Stadt) ## Kreisfreie Stadt
|
7
|
+
...... Bayreuth
|
8
|
+
........ Bayreuth
|
9
|
+
243 .... Coburg (Stadt) ## Kreisfreie Stadt
|
10
|
+
...... Coburg
|
11
|
+
........ Coburg
|
12
|
+
244 .... Hof (Stadt) ## Kreisfreie Stadt
|
13
|
+
...... Hof
|
14
|
+
........ Hof
|
15
|
+
|
16
|
+
245 .... Bamberg (Land) ## Landkreis -- 36 Gemeinden; see de.wikipedia.org/wiki/Landkreis_Bamberg
|
17
|
+
## 4 Städte
|
18
|
+
...... Baunach ## (4013, 30,9 km²)
|
19
|
+
........ Baunach
|
20
|
+
...... Hallstadt ## (8364, 14,5 km²)
|
21
|
+
........ Hallstadt ## (7588)
|
22
|
+
........ Dörfleins ## (1380)
|
23
|
+
...... Scheßlitz ## (7184, 94,9 km²)
|
24
|
+
........ Scheßlitz
|
25
|
+
........ Köttensdorf
|
26
|
+
........ Würgau
|
27
|
+
...... Schlüsselfeld ## (5712, 70,2 km²)
|
28
|
+
|
29
|
+
## 8 Märkte
|
30
|
+
...... Burgebrach ## (6553, 87,9 km²)
|
31
|
+
...... Burgwindheim ## (1311, 37,4 km²)
|
32
|
+
...... Buttenheim ## (3472, 30 km²)
|
33
|
+
...... Ebrach ## (1830, 29,6 km²)
|
34
|
+
...... Heiligenstadt i. OFr. ## (3525, 76,7 km²)
|
35
|
+
........ Heiligenstadt i. OFr.
|
36
|
+
........ Oberleinleiter
|
37
|
+
...... Hirschaid ## (11.919, 41 km²)
|
38
|
+
...... Rattelsdorf ## (4568, 39,6 km²)
|
39
|
+
........ Rattelsdorf
|
40
|
+
........ Mürsbach
|
41
|
+
........ Freudeneck
|
42
|
+
........ Höfen
|
43
|
+
........ Ebing
|
44
|
+
...... Zapfendorf ## (4954, 30,6 km²)
|
45
|
+
|
46
|
+
## 24 Gemeinden
|
47
|
+
...... Altendorf ## (2012, 8,6 km²)
|
48
|
+
...... Bischberg ## (6012, 17,5 km²)
|
49
|
+
...... Breitengüßbach ## (4586, 16,9 km²)
|
50
|
+
........ Breitengüßbach
|
51
|
+
...... Frensdorf ## (4865, 44 km²)
|
52
|
+
...... Gerach ## (946, 7,8 km²)
|
53
|
+
...... Gundelsheim ## (3378, 3,8 km²)
|
54
|
+
...... Kemmern ## (2544, 8,3 km²)
|
55
|
+
........ Kemmern
|
56
|
+
...... Königsfeld ## (1335, 42,7 km²)
|
57
|
+
........ Königsfeld
|
58
|
+
........ Huppendorf
|
59
|
+
...... Lauter ## (1139, 12,8 km²)
|
60
|
+
........ Lauter ## (601)
|
61
|
+
........ Appendorf ## (213)
|
62
|
+
...... Lisberg ## (1813, 8,4 km²)
|
63
|
+
...... Litzendorf ## (6057, 25,9 km²)
|
64
|
+
........ Litzendorf
|
65
|
+
........ Schammelsdorf
|
66
|
+
........ Melkendorf
|
67
|
+
........ Lohndorf
|
68
|
+
........ Tiefenellern
|
69
|
+
...... Memmelsdorf ## (8854, 26,2 km²)
|
70
|
+
........ Memmelsdorf
|
71
|
+
........ Merkendorf
|
72
|
+
........ Drosendorf
|
73
|
+
...... Oberhaid ## (4590, 27,2 km²)
|
74
|
+
........ Oberhaid
|
75
|
+
........ Staffelbach
|
76
|
+
...... Pettstadt ## (1940, 9,9 km²)
|
77
|
+
...... Pommersfelden ## (2851, 35,7 km²)
|
78
|
+
...... Priesendorf ## (1470, 8,4 km²)
|
79
|
+
...... Reckendorf ## (2033, 13,1 km²)
|
80
|
+
........ Reckendorf
|
81
|
+
...... Schönbrunn im Steigerwald ## (1880, 24,7 km²)
|
82
|
+
...... Stadelhofen ## (1250, 41 km²)
|
83
|
+
........ Stadelhofen
|
84
|
+
........ Steinfeld
|
85
|
+
........ Schederndorf
|
86
|
+
...... Stegaurach ## (6842, 23,9 km²)
|
87
|
+
...... Strullendorf ## (7807, 31,7 km²)
|
88
|
+
........ Strullendorf
|
89
|
+
........ Geisfeld
|
90
|
+
........ Roßdorf am Forst
|
91
|
+
...... Viereth-Trunstadt ## (3562, 15,8 km²)
|
92
|
+
...... Walsdorf ## (2575, 16,2 km²)
|
93
|
+
...... Wattendorf ## (679, 22,2 km²)
|
94
|
+
........ Wattendorf
|
95
|
+
|
96
|
+
246 .... Bayreuth (Land) ## Landkreis
|
97
|
+
247 .... Coburg (Land) ## Landkreis
|
98
|
+
248 .... Forchheim
|
99
|
+
249 .... Hof (Land) ## Landkreis
|
100
|
+
24A .... Kronach
|
101
|
+
24B .... Kulmbach
|
102
|
+
24C .... Lichtenfels
|
103
|
+
24D .... Wunsiedel i. Fichtelgebirge
|
104
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
2 Bayern
|
2
|
+
24 .. Oberfranken
|
3
|
+
241 .... Bamberg (Stadt) ## Kreisfreie Stadt
|
4
|
+
...... Bamberg
|
5
|
+
........ Bamberg
|
6
|
+
242 .... Bayreuth (Stadt) ## Kreisfreie Stadt
|
7
|
+
...... Bayreuth
|
8
|
+
........ Bayreuth
|
9
|
+
|
10
|
+
245 .... Bamberg (Land) ## Landkreis -- 36 Gemeinden; see de.wikipedia.org/wiki/Landkreis_Bamberg
|
11
|
+
## 4 Städte
|
12
|
+
...... Baunach ## (4013, 30,9 km²)
|
13
|
+
........ Baunach
|
14
|
+
...... Hallstadt ## (8364, 14,5 km²)
|
15
|
+
........ Hallstadt ## (7588)
|
16
|
+
........ Dörfleins ## (1380)
|
17
|
+
|
@@ -1,7 +1,7 @@
|
|
1
1
|
########################################
|
2
2
|
# Bayern
|
3
3
|
#
|
4
|
-
# 7 Regierungsbezirke (administrative districts or governmental districts
|
4
|
+
# 7 Regierungsbezirke (administrative districts or governmental districts)
|
5
5
|
|
6
6
|
ob, Oberbayern, München, 17_530 km² # 091 OB
|
7
7
|
nb, Niederbayern, Landshut, 10_329 km² # 092 NB
|
@@ -0,0 +1,9 @@
|
|
1
|
+
|
2
|
+
# note: same as admin plus tree (orte.txt)
|
3
|
+
|
4
|
+
de-deutschland!/states
|
5
|
+
de-deutschland!/3--by-bayern/parts
|
6
|
+
de-deutschland!/3--by-bayern/1--oberbayern/counties
|
7
|
+
de-deutschland!/3--by-bayern/4--oberfranken/counties
|
8
|
+
|
9
|
+
de-deutschland!/3--by-bayern/4--oberfranken/orte
|
data/test/helper.rb
CHANGED
@@ -14,8 +14,15 @@ Name = WorldDb::Model::Name
|
|
14
14
|
Place = WorldDb::Model::Place
|
15
15
|
Continent = WorldDb::Model::Continent
|
16
16
|
Country = WorldDb::Model::Country
|
17
|
-
|
17
|
+
|
18
|
+
State = WorldDb::Model::State
|
19
|
+
Part = WorldDb::Model::Part
|
20
|
+
County = WorldDb::Model::County
|
21
|
+
Muni = WorldDb::Model::Muni
|
22
|
+
|
23
|
+
Metro = WorldDb::Model::Metro
|
18
24
|
City = WorldDb::Model::City
|
25
|
+
District = WorldDb::Model::District
|
19
26
|
|
20
27
|
Lang = WorldDb::Model::Lang
|
21
28
|
Usage = WorldDb::Model::Usage
|
@@ -16,7 +16,7 @@ class TestFixtureMatchers < MiniTest::Test
|
|
16
16
|
'at-austria/cities',
|
17
17
|
'at-austria!/cities',
|
18
18
|
'at-austria!/1--niederoesterreich--eastern--cities',
|
19
|
-
'at-austria!/1--niederoesterreich--eastern/cities', #
|
19
|
+
'at-austria!/1--niederoesterreich--eastern/cities', # state w/o code/abbrev
|
20
20
|
'at-austria!/1--niederoesterreich--eastern/1--waldviertel--cities'
|
21
21
|
]
|
22
22
|
|
@@ -41,7 +41,7 @@ class TestFixtureMatchers < MiniTest::Test
|
|
41
41
|
'europe/1--at-austria--central/beers',
|
42
42
|
'europe/1--at-austria--central/1--niederosterreich--eastern--beers',
|
43
43
|
'at-austria!/1--niederoesterreich--eastern--beers',
|
44
|
-
'at-austria!/1--niederoesterreich--eastern/beers', #
|
44
|
+
'at-austria!/1--niederoesterreich--eastern/beers', # state w/o code/abbrev
|
45
45
|
'at-austria!/1--niederoesterreich--eastern/1--waldviertel--beers'
|
46
46
|
]
|
47
47
|
|
@@ -68,7 +68,7 @@ class TestFixtureMatchers < MiniTest::Test
|
|
68
68
|
end # method test_country
|
69
69
|
|
70
70
|
|
71
|
-
def
|
71
|
+
def test_country_n_state
|
72
72
|
|
73
73
|
beers_at = [
|
74
74
|
'europe/at-austria/w-wien/beers',
|
@@ -86,9 +86,9 @@ class TestFixtureMatchers < MiniTest::Test
|
|
86
86
|
]
|
87
87
|
|
88
88
|
beers_at.each do |name|
|
89
|
-
found =
|
89
|
+
found = match_xxx_for_country_n_state( name, 'beers' ) do |country_key,state_key|
|
90
90
|
assert_equal country_key, 'at'
|
91
|
-
assert_equal
|
91
|
+
assert_equal state_key, 'w'
|
92
92
|
end
|
93
93
|
assert found
|
94
94
|
end
|
@@ -100,13 +100,12 @@ class TestFixtureMatchers < MiniTest::Test
|
|
100
100
|
]
|
101
101
|
|
102
102
|
breweries_at.each do |name|
|
103
|
-
found =
|
103
|
+
found = match_xxx_for_country_n_state( name, 'breweries' ) do |country_key,state_key|
|
104
104
|
assert_equal country_key, 'at'
|
105
|
-
assert_equal
|
105
|
+
assert_equal state_key, 'w'
|
106
106
|
end
|
107
107
|
assert found
|
108
108
|
end
|
109
|
-
end # method
|
109
|
+
end # method test_country_n_state
|
110
110
|
|
111
|
-
|
112
|
-
end # class TestFixtureMatchers
|
111
|
+
end # class TestFixtureMatchers
|
@@ -12,7 +12,7 @@ class TestFixtureMatchersII < MiniTest::Test
|
|
12
12
|
|
13
13
|
include WorldDb::Matcher
|
14
14
|
|
15
|
-
def
|
15
|
+
def test_country_n_state_breweries_franken
|
16
16
|
breweries_franken = [
|
17
17
|
'de-deutschland/by-bayern/franken!/1--oberfranken/100_000+_breweries',
|
18
18
|
'de-deutschland/by-bayern/franken!/1--oberfranken/20_000+-breweries',
|
@@ -28,10 +28,10 @@ class TestFixtureMatchersII < MiniTest::Test
|
|
28
28
|
'de-deutschland/by-bayern/franken!/3--unterfranken/breweries_100_000+',
|
29
29
|
'de-deutschland/by-bayern/franken!/3--unterfranken/breweries_20_000+',
|
30
30
|
]
|
31
|
-
|
32
|
-
end # method
|
31
|
+
assert_match_xxx_for_country_n_state( breweries_franken, 'breweries', 'de', 'by' )
|
32
|
+
end # method test_country_n_state_breweries
|
33
33
|
|
34
|
-
def
|
34
|
+
def test_country_n_state_breweries_bayern
|
35
35
|
breweries_bayern = [
|
36
36
|
'de-deutschland/3--by-bayern!/1--oberbayern/breweries_(l)',
|
37
37
|
'de-deutschland/3--by-bayern!/1--oberbayern/breweries_(m)',
|
@@ -46,29 +46,29 @@ class TestFixtureMatchersII < MiniTest::Test
|
|
46
46
|
'de-deutschland/3--by-bayern!/4--schwaben/breweries_100_000+',
|
47
47
|
'de-deutschland/3--by-bayern!/4--schwaben/breweries_20_000+',
|
48
48
|
]
|
49
|
-
|
50
|
-
end # method
|
49
|
+
assert_match_xxx_for_country_n_state( breweries_bayern, 'breweries', 'de', 'by' )
|
50
|
+
end # method test_country_n_state_breweries
|
51
51
|
|
52
52
|
|
53
|
-
def
|
53
|
+
def test_country_n_state_brewpubs_franken
|
54
54
|
brewpubs_franken = [
|
55
55
|
'de-deutschland/by-bayern/franken!/3--unterfranken/brewpubs',
|
56
56
|
]
|
57
|
-
|
57
|
+
assert_match_xxx_for_country_n_state( brewpubs_franken, 'brewpubs', 'de', 'by' )
|
58
58
|
end
|
59
59
|
|
60
|
-
def
|
60
|
+
def test_country_n_state_brewpubs_bayern
|
61
61
|
brewpubs_bayern = [
|
62
62
|
'de-deutschland/3--by-bayern!/1--oberbayern/brewpubs',
|
63
63
|
'de-deutschland/3--by-bayern!/2--niederbayern/brewpubs',
|
64
64
|
'de-deutschland/3--by-bayern!/3--oberpfalz/brewpubs',
|
65
65
|
'de-deutschland/3--by-bayern!/4--schwaben/brewpubs',
|
66
66
|
]
|
67
|
-
|
67
|
+
assert_match_xxx_for_country_n_state( brewpubs_bayern, 'brewpubs', 'de', 'by' )
|
68
68
|
end
|
69
69
|
|
70
70
|
|
71
|
-
def
|
71
|
+
def test_country_n_state_beers_franken
|
72
72
|
beers_franken = [
|
73
73
|
'de-deutschland/by-bayern/franken!/1--oberfranken/100_000+_beers',
|
74
74
|
'de-deutschland/by-bayern/franken!/1--oberfranken/beers',
|
@@ -76,10 +76,10 @@ class TestFixtureMatchersII < MiniTest::Test
|
|
76
76
|
'de-deutschland/by-bayern/franken!/1--oberfranken/steigerwald-bamberg--beers',
|
77
77
|
'de-deutschland/by-bayern/franken!/3--unterfranken/beers_100_000+',
|
78
78
|
]
|
79
|
-
|
80
|
-
end # method
|
79
|
+
assert_match_xxx_for_country_n_state( beers_franken, 'beers', 'de', 'by' )
|
80
|
+
end # method test_country_n_state_beers
|
81
81
|
|
82
|
-
def
|
82
|
+
def test_country_n_state_beers_bayern
|
83
83
|
beers_bayern = [
|
84
84
|
'de-deutschland/3--by-bayern!/1--oberbayern/beers--muenchen',
|
85
85
|
'de-deutschland/3--by-bayern!/1--oberbayern/beers_l',
|
@@ -91,19 +91,20 @@ class TestFixtureMatchersII < MiniTest::Test
|
|
91
91
|
'de-deutschland/3--by-bayern!/3--oberpfalz/beers_100_000+',
|
92
92
|
'de-deutschland/3--by-bayern!/4--schwaben/beers_100_000+',
|
93
93
|
]
|
94
|
-
|
95
|
-
end # method
|
94
|
+
assert_match_xxx_for_country_n_state( beers_bayern, 'beers', 'de', 'by' )
|
95
|
+
end # method test_country_n_state_beers
|
96
96
|
|
97
97
|
|
98
98
|
private
|
99
|
-
def
|
99
|
+
def assert_match_xxx_for_country_n_state( ary, xxx, expected_country_key, expected_state_key )
|
100
100
|
ary.each do |name|
|
101
|
-
found =
|
101
|
+
found = match_xxx_for_country_n_state( name, xxx ) do |country_key,state_key|
|
102
102
|
assert_equal country_key, expected_country_key, "#{expected_country_key} expected is #{country_key}"
|
103
|
-
assert_equal
|
103
|
+
assert_equal state_key, expected_state_key, "#{expected_state_key} expected is #{state_key}"
|
104
104
|
end
|
105
105
|
assert found, "no match for '#{name}'"
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
109
109
|
end # class TestFixtureMatchersII
|
110
|
+
|
data/test/test_model_city.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_model_city.rb
|
3
6
|
|
4
7
|
require 'helper'
|
5
8
|
|
6
9
|
class TestModelCity < MiniTest::Test
|
7
10
|
|
8
11
|
def setup
|
9
|
-
# delete all countries,
|
12
|
+
# delete all countries, states, cities in in-memory only db
|
10
13
|
WorldDb.delete!
|
11
14
|
end
|
12
15
|
|
@@ -18,7 +21,7 @@ class TestModelCity < MiniTest::Test
|
|
18
21
|
pop: 8_414_638,
|
19
22
|
area: 83_871 )
|
20
23
|
|
21
|
-
w =
|
24
|
+
w = State.create!( key: 'w',
|
22
25
|
name: 'Wien',
|
23
26
|
country_id: at.id )
|
24
27
|
|
@@ -42,19 +45,33 @@ class TestModelCity < MiniTest::Test
|
|
42
45
|
|
43
46
|
assert_equal new_attributes[:name], c.name
|
44
47
|
assert_equal 1_731_236, c.pop
|
45
|
-
assert_equal
|
46
|
-
assert_equal true, c.m
|
47
|
-
assert_equal w.id, c.region_id
|
48
|
+
assert_equal w.id, c.state_id
|
48
49
|
assert_equal at.id, c.country_id
|
49
|
-
|
50
|
+
|
50
51
|
### test place
|
51
52
|
assert_equal new_attributes[:name], c.place.name
|
52
53
|
|
53
54
|
## test assocs
|
54
|
-
assert_equal 'Wien', c.
|
55
|
-
assert_equal 'Austria', c.
|
55
|
+
assert_equal 'Wien', c.state.name
|
56
|
+
assert_equal 'Austria', c.state.country.name
|
56
57
|
assert_equal 'Austria', c.country.name
|
57
|
-
end
|
58
58
|
|
59
59
|
|
60
|
+
#####
|
61
|
+
# check (auto-)added metro record
|
62
|
+
|
63
|
+
m = Metro.find_by_key!( new_attributes[:key] )
|
64
|
+
assert_equal new_attributes[:name], m.name
|
65
|
+
assert_equal 1_724_000, m.pop
|
66
|
+
assert_equal at.id, m.country_id
|
67
|
+
|
68
|
+
## test assocs
|
69
|
+
assert_equal 1, m.cities.count
|
70
|
+
assert_equal 'Wien', m.cities.first.name
|
71
|
+
assert_equal 'Austria', m.country.name
|
72
|
+
|
73
|
+
assert_equal 'Wien', c.metro.name
|
74
|
+
assert_equal m.id, c.metro.id
|
75
|
+
end
|
76
|
+
|
60
77
|
end # class TestModelCity
|
@@ -3,46 +3,48 @@
|
|
3
3
|
|
4
4
|
require 'helper'
|
5
5
|
|
6
|
-
class
|
6
|
+
class TestModelCompat < MiniTest::Test
|
7
7
|
|
8
8
|
def setup
|
9
|
-
# delete all countries,
|
9
|
+
# delete all countries, states, cities in in-memory only db
|
10
10
|
WorldDb.delete!
|
11
11
|
end
|
12
12
|
|
13
13
|
|
14
14
|
def test_title
|
15
|
+
|
16
|
+
## todo: change :name to :title -- why? why not??
|
17
|
+
|
15
18
|
at = Country.create!( key: 'at',
|
16
|
-
|
19
|
+
name: 'Austria',
|
17
20
|
code: 'AUT',
|
18
21
|
pop: 8_414_638,
|
19
22
|
area: 83_871 )
|
20
23
|
|
21
|
-
w =
|
22
|
-
|
24
|
+
w = State.create!( key: 'w',
|
25
|
+
name: 'Wien',
|
23
26
|
country_id: at.id )
|
24
27
|
|
25
28
|
new_attributes = {
|
26
29
|
key: 'wien',
|
27
|
-
|
30
|
+
name: 'Wien'
|
28
31
|
}
|
29
32
|
|
30
33
|
c = City.create!( key: new_attributes[:key],
|
31
|
-
|
32
|
-
|
34
|
+
name: new_attributes[:name], # note: assign "old" title attrib
|
35
|
+
state_id: w.id,
|
33
36
|
country_id: at.id )
|
34
37
|
|
35
38
|
c2 = City.find_by_key!( new_attributes[:key] )
|
36
39
|
assert_equal c2.id, c.id
|
37
40
|
|
38
|
-
assert_equal new_attributes[:
|
39
|
-
assert_equal new_attributes[:
|
41
|
+
assert_equal new_attributes[:name], c.name
|
42
|
+
assert_equal new_attributes[:name], c.title ## todo: move to comapt
|
40
43
|
assert_equal new_attributes[:key], c.key
|
41
|
-
assert_equal
|
42
|
-
assert_equal w.id, c.region_id
|
44
|
+
assert_equal w.id, c.state_id
|
43
45
|
assert_equal at.id, c.country_id
|
44
46
|
end
|
45
47
|
|
46
48
|
|
47
|
-
end # class
|
49
|
+
end # class TestModelCompat
|
48
50
|
|
data/test/test_model_country.rb
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_model_state.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
class TestModelState < MiniTest::Test
|
11
|
+
|
12
|
+
def setup
|
13
|
+
# delete all countries, states, cities in in-memory only db
|
14
|
+
WorldDb.delete!
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_load_values
|
18
|
+
|
19
|
+
at = Country.create!( key: 'at',
|
20
|
+
name: 'Austria',
|
21
|
+
code: 'AUT',
|
22
|
+
pop: 8_414_638,
|
23
|
+
area: 83_871 )
|
24
|
+
|
25
|
+
new_attributes = {
|
26
|
+
key: 'w',
|
27
|
+
name: 'Wien',
|
28
|
+
alt_names: '',
|
29
|
+
country_id: at.id
|
30
|
+
}
|
31
|
+
|
32
|
+
values = [
|
33
|
+
'415 km²',
|
34
|
+
'eastern austria'
|
35
|
+
]
|
36
|
+
|
37
|
+
st = State.create_or_update_from_attribs( new_attributes, values )
|
38
|
+
|
39
|
+
st2 = State.find_by_key!( new_attributes[:key] )
|
40
|
+
assert_equal st.id, st2.id
|
41
|
+
|
42
|
+
assert_equal new_attributes[:name], st.name
|
43
|
+
assert_equal 415, st.area
|
44
|
+
assert_equal at.id, st.country_id
|
45
|
+
|
46
|
+
### test place
|
47
|
+
assert_equal new_attributes[:name], st.place.name
|
48
|
+
|
49
|
+
## test assocs
|
50
|
+
assert_equal 'Austria', st.country.name
|
51
|
+
end
|
52
|
+
|
53
|
+
end # class TestModelState
|
54
|
+
|