worlddb-models 2.2.1 → 2.2.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.
- checksums.yaml +4 -4
- data/Manifest.txt +13 -0
- data/lib/worlddb/matcher.rb +67 -0
- data/lib/worlddb/models/country.rb +3 -0
- data/lib/worlddb/models/region.rb +16 -1
- data/lib/worlddb/reader.rb +30 -1
- data/lib/worlddb/reader_file.rb +26 -8
- data/lib/worlddb/schema.rb +35 -1
- data/lib/worlddb/version.rb +1 -1
- data/test/data/at-austria/1--b-burgenland/counties.txt +20 -0
- data/test/data/at-austria/2--n-niederoesterreich/counties.txt +35 -0
- data/test/data/at-austria/3--w-wien/counties.txt +39 -0
- data/test/data/at-austria/setups/adm.txt +7 -0
- data/test/data/at-austria/states.txt +18 -0
- data/test/data/de-deutschland/3--by-bayern/1--oberbayern/counties.txt +51 -0
- data/test/data/de-deutschland/3--by-bayern/4--oberfranken/counties.txt +42 -0
- data/test/data/de-deutschland/3--by-bayern/districts.txt +13 -0
- data/test/data/de-deutschland/setups/adm.txt +8 -0
- data/test/data/de-deutschland/states.txt +23 -0
- data/test/test_fixture_matcher_adm2.rb +62 -0
- data/test/test_fixture_matcher_adm3.rb +41 -0
- data/test/test_read_adm.rb +67 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e9b1bdb5484b5c74ef690b349dfd92dbb7fbd5d2
|
4
|
+
data.tar.gz: ed1e496ec5d29624d915dd9e93559eda99ead12e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ddd1c5c80416d77525a33cf1a54a79d953c2bc4303f7d305e0790b9d578990be7cfaf76576b5e2d9fc17ebc46f2bf3d353aa25d68771a8fb13a68f074a944e4
|
7
|
+
data.tar.gz: 8098bfbbbdaf6e23f47fe26a02315747581130c97455b2521cf4264d352c0d95f435dab6d8fe128b410ec1d839e6d423e1f937effef8a42771f51d7a72cadf68
|
data/Manifest.txt
CHANGED
@@ -34,7 +34,19 @@ lib/worlddb/readers/usage.rb
|
|
34
34
|
lib/worlddb/schema.rb
|
35
35
|
lib/worlddb/stats.rb
|
36
36
|
lib/worlddb/version.rb
|
37
|
+
test/data/at-austria/1--b-burgenland/counties.txt
|
38
|
+
test/data/at-austria/2--n-niederoesterreich/counties.txt
|
39
|
+
test/data/at-austria/3--w-wien/counties.txt
|
40
|
+
test/data/at-austria/setups/adm.txt
|
41
|
+
test/data/at-austria/states.txt
|
42
|
+
test/data/de-deutschland/3--by-bayern/1--oberbayern/counties.txt
|
43
|
+
test/data/de-deutschland/3--by-bayern/4--oberfranken/counties.txt
|
44
|
+
test/data/de-deutschland/3--by-bayern/districts.txt
|
45
|
+
test/data/de-deutschland/setups/adm.txt
|
46
|
+
test/data/de-deutschland/states.txt
|
37
47
|
test/helper.rb
|
48
|
+
test/test_fixture_matcher_adm2.rb
|
49
|
+
test/test_fixture_matcher_adm3.rb
|
38
50
|
test/test_fixture_matchers.rb
|
39
51
|
test/test_fixture_matchers_ii.rb
|
40
52
|
test/test_model_city.rb
|
@@ -42,3 +54,4 @@ test/test_model_comp.rb
|
|
42
54
|
test/test_model_country.rb
|
43
55
|
test/test_model_region.rb
|
44
56
|
test/test_models.rb
|
57
|
+
test/test_read_adm.rb
|
data/lib/worlddb/matcher.rb
CHANGED
@@ -4,14 +4,19 @@ module WorldDb
|
|
4
4
|
|
5
5
|
module Matcher
|
6
6
|
|
7
|
+
# note: returns code as capture
|
7
8
|
WORLD_COUNTRY_CODE_PATTERN = '([a-z]{2,3})'
|
8
9
|
WORLD_COUNTRY_CLASSIC_PATTERN = "#{WORLD_COUNTRY_CODE_PATTERN}-[^\\/]+" ## note: if you use "" need to double escape backslash!!!
|
9
10
|
WORLD_COUNTRY_MODERN_PATTERN = "[0-9]+--#{WORLD_COUNTRY_CODE_PATTERN}-[^\\/]+" ## note: if you use "" need to double escape backslash!!!
|
10
11
|
|
12
|
+
# note: returns code as capture
|
11
13
|
WORLD_REGION_CODE_PATTERN = '([a-z]{1,3})'
|
12
14
|
WORLD_REGION_CLASSIC_PATTERN = "#{WORLD_REGION_CODE_PATTERN}-[^\\/]+"
|
13
15
|
WORLD_REGION_MODERN_PATTERN = "[0-9]+--#{WORLD_REGION_CODE_PATTERN}-[^\\/]+"
|
14
16
|
|
17
|
+
# note: returns name as capture (no code required)
|
18
|
+
WORLD_ADMIN_MODERN_PATTERN = "[0-9]+--([^\\/]+)"
|
19
|
+
|
15
20
|
## allow optional folders -- TODO: add restriction ?? e.g. must be 4+ alphas ???
|
16
21
|
WORLD_OPT_FOLDERS_PATTERN = "(?:\\/[^\\/]+)*" ## check: use double \\ or just \ ??
|
17
22
|
|
@@ -100,6 +105,68 @@ module Matcher
|
|
100
105
|
end
|
101
106
|
|
102
107
|
|
108
|
+
|
109
|
+
def match_xxx_for_country_n_adm1( name, xxx ) # xxx e.g. districts|counties|etc.
|
110
|
+
|
111
|
+
# auto-add required country n regions (from folder structure)
|
112
|
+
#
|
113
|
+
# e.g. de-deutschland!/3--by-bayern/districts (regierungsbezirke)
|
114
|
+
# europe/de-deutschland!/3--by-bayern/districts
|
115
|
+
#
|
116
|
+
# at-austria!/1--n-niederoesterreich/counties (bezirke)
|
117
|
+
|
118
|
+
xxx_pattern = "#{xxx}"
|
119
|
+
|
120
|
+
if name =~ /(?:^|\/)#{WORLD_COUNTRY_CLASSIC_PATTERN}\/#{WORLD_REGION_MODERN_PATTERN}\/#{xxx_pattern}/ ||
|
121
|
+
name =~ /(?:^|\/)#{WORLD_COUNTRY_CLASSIC_PATTERN}\/#{WORLD_REGION_CLASSIC_PATTERN}\/#{xxx_pattern}/
|
122
|
+
|
123
|
+
country_key = $1.dup
|
124
|
+
region_key = $2.dup
|
125
|
+
yield( country_key, region_key )
|
126
|
+
true # bingo - match found
|
127
|
+
else
|
128
|
+
false # no match found
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
def match_xxx_for_country_n_adm1_n_adm2( name, xxx ) # xxx e.g. districts|counties|etc.
|
134
|
+
|
135
|
+
# auto-add required country n regions (from folder structure)
|
136
|
+
#
|
137
|
+
# e.g. de-deutschland!/3--by-bayern/4--oberfranken/counties (landkreise)
|
138
|
+
# europe/de-deutschland!/3--by-bayern/4--oberfranken/counties
|
139
|
+
|
140
|
+
xxx_pattern = "#{xxx}"
|
141
|
+
|
142
|
+
if name =~ /(?:^|\/)#{WORLD_COUNTRY_CLASSIC_PATTERN}\/#{WORLD_REGION_MODERN_PATTERN}\/#{WORLD_ADMIN_MODERN_PATTERN}\/#{xxx_pattern}/ ||
|
143
|
+
name =~ /(?:^|\/)#{WORLD_COUNTRY_CLASSIC_PATTERN}\/#{WORLD_REGION_CLASSIC_PATTERN}\/#{WORLD_ADMIN_MODERN_PATTERN}\/#{xxx_pattern}/
|
144
|
+
|
145
|
+
country_key = $1.dup
|
146
|
+
region_key = $2.dup
|
147
|
+
adm2 = $3.dup # lowercase name e.g. oberfranken, oberbayern, etc.
|
148
|
+
yield( country_key, region_key, adm2 )
|
149
|
+
true # bingo - match found
|
150
|
+
else
|
151
|
+
false # no match found
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
|
156
|
+
def match_adm2_for_country( name, &blk )
|
157
|
+
## note: also try synonyms e.g. districts|counties
|
158
|
+
## note: counties might also be an adm3 match
|
159
|
+
found = match_xxx_for_country_n_adm1( name, 'districts', &blk )
|
160
|
+
found = match_xxx_for_country_n_adm1( name, 'counties', &blk ) unless found
|
161
|
+
found
|
162
|
+
end
|
163
|
+
|
164
|
+
def match_adm3_for_country( name, &blk )
|
165
|
+
match_xxx_for_country_n_adm1_n_adm2( name, 'counties', &blk )
|
166
|
+
end
|
167
|
+
|
168
|
+
|
169
|
+
|
103
170
|
def match_cities_for_country( name, &blk )
|
104
171
|
## todo: check if there's a better (more ruby way) to pass along code block ??
|
105
172
|
## e.g. try
|
@@ -29,6 +29,9 @@ class Country < ActiveRecord::Base
|
|
29
29
|
## self referencing hierachy within countries e.g. EU > GB > EN
|
30
30
|
belongs_to :parent, class_name: 'Country', foreign_key: 'country_id'
|
31
31
|
has_many :countries, class_name: 'Country', foreign_key: 'country_id'
|
32
|
+
### recursive self-reference - use node??
|
33
|
+
## has_many :nodes, class_name: 'Region', foregin_key: 'region_id'
|
34
|
+
|
32
35
|
|
33
36
|
has_many_tags
|
34
37
|
|
@@ -22,6 +22,11 @@ class Region < ActiveRecord::Base
|
|
22
22
|
validates :key, format: { with: /#{REGION_KEY_PATTERN}/, message: REGION_KEY_PATTERN_MESSAGE }
|
23
23
|
validates :code, format: { with: /#{REGION_CODE_PATTERN}/, message: REGION_CODE_PATTERN_MESSAGE }, allow_nil: true
|
24
24
|
|
25
|
+
### recursive self-reference - use "generic" node??
|
26
|
+
## has_many :nodes, class_name: 'Region', foregin_key: 'region_id'
|
27
|
+
belongs_to :parent, class_name: 'Region', foreign_key: 'region_id'
|
28
|
+
has_many :regions, class_name: 'Region', foreign_key: 'region_id' ## subregions
|
29
|
+
|
25
30
|
|
26
31
|
before_create :on_create
|
27
32
|
before_update :on_update
|
@@ -36,8 +41,18 @@ class Region < ActiveRecord::Base
|
|
36
41
|
place.update_attributes!( name: name, kind: place_kind )
|
37
42
|
end
|
38
43
|
|
44
|
+
def is_district?() d? == true; end
|
45
|
+
def is_county?() c? == true; end
|
46
|
+
|
39
47
|
def place_kind # use place_kind_of_code ??
|
40
|
-
|
48
|
+
### fix: use "generic" level counter - make it a database field (default/top level is 1)
|
49
|
+
if is_district?
|
50
|
+
'ADM2'
|
51
|
+
elsif is_county?
|
52
|
+
'ADM3'
|
53
|
+
else
|
54
|
+
'ADM1'
|
55
|
+
end
|
41
56
|
end
|
42
57
|
|
43
58
|
|
data/lib/worlddb/reader.rb
CHANGED
@@ -94,12 +94,41 @@ class ReaderBase
|
|
94
94
|
elsif match_regions_nuts_for_country( name ) do |country_key| # name =~ /\/([a-z]{2})\/regions\.nuts/
|
95
95
|
load_regions_xxx( country_key, 'nuts', name )
|
96
96
|
end
|
97
|
+
elsif match_adm3_for_country( name ) do |country_key,region_key,adm2_name|
|
98
|
+
## auto-add required country code (from folder structure)
|
99
|
+
country = Country.find_by_key!( country_key )
|
100
|
+
logger.debug "Country #{country.key} >#{country.title} (#{country.code})<"
|
101
|
+
region = Region.find_by_key_and_country_id!( region_key, country.id )
|
102
|
+
logger.debug "Region (Adm1) #{region.key} >#{region.title}<"
|
103
|
+
### todo: move find adm2 to model for (re)use !!!
|
104
|
+
adm2 = Region.where( "lower(name) = ? AND country_id = ?",
|
105
|
+
adm2_name, country.id ).first ## check - first needed? returns ary??
|
106
|
+
if adm2.nil?
|
107
|
+
puts "*** error/warn: fix - skipping adm3 - adm2 '#{adm2_name}' not found"
|
108
|
+
next
|
109
|
+
end
|
110
|
+
logger.debug "Region (Adm2) #{adm2.key} >#{adm2.title}<"
|
111
|
+
|
112
|
+
r = create_region_reader( name, country_id: country.id, region_id: adm2.id, level:3, c:true )
|
113
|
+
r.read()
|
114
|
+
end
|
115
|
+
elsif match_adm2_for_country( name ) do |country_key,region_key|
|
116
|
+
## auto-add required country code (from folder structure)
|
117
|
+
country = Country.find_by_key!( country_key )
|
118
|
+
logger.debug "Country #{country.key} >#{country.title} (#{country.code})<"
|
119
|
+
region = Region.find_by_key_and_country_id!( region_key, country.id )
|
120
|
+
logger.debug "Region (Adm1) #{region.key} >#{region.title}<"
|
121
|
+
|
122
|
+
r = create_region_reader( name, country_id: country.id, region_id: region.id, level:2, d:true )
|
123
|
+
r.read()
|
124
|
+
end
|
125
|
+
### fix: change to match_adm1_for_country()
|
97
126
|
elsif match_regions_for_country( name ) do |country_key| # name =~ /\/([a-z]{2})\/regions/
|
98
127
|
## auto-add required country code (from folder structure)
|
99
128
|
country = Country.find_by_key!( country_key )
|
100
129
|
logger.debug "Country #{country.key} >#{country.title} (#{country.code})<"
|
101
130
|
|
102
|
-
r = create_region_reader( name, country_id: country.id )
|
131
|
+
r = create_region_reader( name, country_id: country.id, region_id: nil, level:1, s:true )
|
103
132
|
r.read()
|
104
133
|
end
|
105
134
|
else
|
data/lib/worlddb/reader_file.rb
CHANGED
@@ -19,14 +19,14 @@ class Reader < ReaderBase
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def create_lang_reader( name )
|
22
|
-
path = "#{@include_path}/#{name}.yml" ## hash reader - use .yml??
|
22
|
+
path = "#{@include_path}/#{path_to_real_path(name)}.yml" ## hash reader - use .yml??
|
23
23
|
logger.info "parsing data (lang) '#{name}' (#{path})..."
|
24
24
|
|
25
25
|
LangReader.from_file( path )
|
26
26
|
end
|
27
27
|
|
28
28
|
def create_usage_reader( name )
|
29
|
-
path = "#{@include_path}/#{name}.yml" ## hash reader - use .yml??
|
29
|
+
path = "#{@include_path}/#{path_to_real_path(name)}.yml" ## hash reader - use .yml??
|
30
30
|
logger.info "parsing data (usage) '#{name}' (#{path})..."
|
31
31
|
|
32
32
|
UsageReader.from_file( path )
|
@@ -34,21 +34,22 @@ class Reader < ReaderBase
|
|
34
34
|
|
35
35
|
|
36
36
|
def create_country_reader( name, more_attribs={} )
|
37
|
-
path = "#{@include_path}/#{name}.txt"
|
37
|
+
path = "#{@include_path}/#{path_to_real_path(name)}.txt"
|
38
38
|
logger.info "parsing data (country) '#{name}' (#{path})..."
|
39
39
|
|
40
40
|
CountryReader.from_file( path, more_attribs )
|
41
41
|
end
|
42
42
|
|
43
43
|
def create_region_reader( name, more_attribs={} )
|
44
|
-
path = "#{@include_path}/#{name}.txt"
|
44
|
+
path = "#{@include_path}/#{path_to_real_path(name)}.txt"
|
45
|
+
|
45
46
|
logger.info "parsing data (region) '#{name}' (#{path})..."
|
46
47
|
|
47
48
|
RegionReader.from_file( path, more_attribs )
|
48
49
|
end
|
49
50
|
|
50
51
|
def create_city_reader( name, more_attribs={} )
|
51
|
-
path = "#{@include_path}/#{name}.txt"
|
52
|
+
path = "#{@include_path}/#{path_to_real_path(name)}.txt"
|
52
53
|
logger.info "parsing data (city) '#{name}' (#{path})..."
|
53
54
|
|
54
55
|
CityReader.from_file( path, more_attribs )
|
@@ -56,21 +57,21 @@ class Reader < ReaderBase
|
|
56
57
|
|
57
58
|
|
58
59
|
def create_hash_reader( name )
|
59
|
-
path = "#{@include_path}/#{name}.yml"
|
60
|
+
path = "#{@include_path}/#{path_to_real_path(name)}.yml"
|
60
61
|
logger.info "parsing data (hash) '#{name}' (#{path})..."
|
61
62
|
|
62
63
|
HashReader.from_file( path )
|
63
64
|
end
|
64
65
|
|
65
66
|
def create_values_reader( name, more_attribs={} )
|
66
|
-
path = "#{@include_path}/#{name}.txt"
|
67
|
+
path = "#{@include_path}/#{path_to_real_path(name)}.txt"
|
67
68
|
logger.info "parsing data (values) '#{name}' (#{path})..."
|
68
69
|
|
69
70
|
ValuesReader.from_file( path, more_attribs )
|
70
71
|
end
|
71
72
|
|
72
73
|
def create_line_reader( name )
|
73
|
-
path = "#{@include_path}/#{name}.txt"
|
74
|
+
path = "#{@include_path}/#{path_to_real_path(name)}.txt"
|
74
75
|
logger.info "parsing data (line) '#{name}' (#{path})..."
|
75
76
|
|
76
77
|
LineReader.from_file( path )
|
@@ -82,5 +83,22 @@ class Reader < ReaderBase
|
|
82
83
|
# end
|
83
84
|
|
84
85
|
|
86
|
+
private
|
87
|
+
|
88
|
+
def path_to_real_path( path )
|
89
|
+
# map name to name_real_path
|
90
|
+
# name might include !/ for virtual path (gets cut off)
|
91
|
+
# e.g. at-austria!/w-wien/beers becomse w-wien/beers
|
92
|
+
pos = path.index( '!/')
|
93
|
+
if pos.nil?
|
94
|
+
path # not found; real path is the same as name
|
95
|
+
else
|
96
|
+
# cut off everything until !/ e.g.
|
97
|
+
# at-austria!/w-wien/beers becomes
|
98
|
+
# w-wien/beers
|
99
|
+
path[ (pos+2)..-1 ]
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
85
103
|
end # class Reader
|
86
104
|
end # module WorldDb
|
data/lib/worlddb/schema.rb
CHANGED
@@ -98,6 +98,7 @@ create_table :countries do |t|
|
|
98
98
|
t.references :country # for supra(nationals) n depend(encies)
|
99
99
|
|
100
100
|
## flags (use single int named flags - why? why not?
|
101
|
+
### fix: use a generic kind string type flag!!!!!!
|
101
102
|
t.boolean :s, null: false, default: false # supra(national) flag e.g. eu
|
102
103
|
t.boolean :c, null: false, default: false # country flag (is this needed?)
|
103
104
|
t.boolean :d, null: false, default: false # dependency flag
|
@@ -127,8 +128,20 @@ add_index :countries, :key, unique: true
|
|
127
128
|
add_index :countries, :code, unique: true
|
128
129
|
|
129
130
|
|
131
|
+
## kind of regions/states but not hierachical (used for tourist/colloquial zones etc.)
|
132
|
+
# uses many-to-many join tables w/ cities n regions
|
133
|
+
#
|
134
|
+
# examples:
|
135
|
+
# Salzkammergut (part of Salzburg and Oberoesterreich)
|
136
|
+
# others
|
137
|
+
# Oberfranken -> Fichtelgebierge/Fraenkische Schweiz/etc.
|
138
|
+
create_table :zones do |t|
|
139
|
+
# to be done
|
140
|
+
end
|
141
|
+
|
142
|
+
|
130
143
|
######
|
131
|
-
# NB: rename to adms/admins ??
|
144
|
+
# NB: rename to adms/admins ?? or use states ???
|
132
145
|
#
|
133
146
|
# used for state/provice/land/regioni/etc.
|
134
147
|
create_table :regions do |t|
|
@@ -140,15 +153,35 @@ create_table :regions do |t|
|
|
140
153
|
t.string :iso # iso code
|
141
154
|
t.string :nuts # nuts code (europe/eu only)
|
142
155
|
t.string :alt_names # comma separated list of alternate names (synonyms)
|
156
|
+
|
143
157
|
t.references :country, null: false
|
158
|
+
t.references :region ## parent region (optional for now - may be null for top level e.g. state/province)
|
159
|
+
t.integer :level, null: false, default: 1 # default assumes 1 e.g. state/province/etc.
|
160
|
+
### change to l (instead of level)!!!! - shorter, why, why not???
|
161
|
+
|
162
|
+
## flags (use single int named flags - why? why not?
|
163
|
+
### fix: use a generic kind string type flag!!!!!!
|
164
|
+
t.boolean :s, null: false, default: false # state flag (use adm1? or a1)
|
165
|
+
t.boolean :d, null: false, default: false # governmental district falg (use adm2? or a2) - check is Oberfranken/Oberbayern admin2 in Bayern (DE) ?? - note: might be optional (than adm3 becomes adm2)
|
166
|
+
t.boolean :c, null: false, default: false # county (or bezirk etc.) (use adm3? or a3?)
|
167
|
+
|
168
|
+
|
144
169
|
t.integer :pop # optional population count
|
145
170
|
t.integer :area # optional area in square km (sq. km)
|
146
171
|
t.timestamps
|
147
172
|
end
|
148
173
|
|
174
|
+
### fix: add kind to unique ???
|
149
175
|
add_index :regions, [:key, :country_id], unique: true
|
150
176
|
|
151
177
|
|
178
|
+
|
179
|
+
create_table :city_rels do |t| ## city relationships (w/ regions) -- part of region/zone
|
180
|
+
t.references :city, null: false
|
181
|
+
t.references :region ## optional ?? either region or zone ?? use polymorphic assoc or use node w/ kind for place?
|
182
|
+
t.references :zone ## tourist zone e.g. fraenkische schweiz, wachau, steigerwald, etc. - use own join table???
|
183
|
+
end
|
184
|
+
|
152
185
|
create_table :cities do |t|
|
153
186
|
t.string :name, null: false
|
154
187
|
t.string :key, null: false
|
@@ -166,6 +199,7 @@ create_table :cities do |t|
|
|
166
199
|
## t.float :lng # optional for now -- FIX: remove?? moved to places
|
167
200
|
|
168
201
|
## flags (use single int named flags - why? why not?
|
202
|
+
### fix: use a generic kind string type flag!!!!!!
|
169
203
|
t.boolean :m, null: false, default: false # metro flag
|
170
204
|
t.boolean :c, null: false, default: false # city flag (is this needed?)
|
171
205
|
t.boolean :d, null: false, default: false # district flag
|
data/lib/worlddb/version.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
## Burgenland (B)
|
2
|
+
#
|
3
|
+
## 2 Statutarstädte - Eisenstadt, Rust
|
4
|
+
## 7 Bezirke
|
5
|
+
##
|
6
|
+
## 13 Städte
|
7
|
+
## 171 Gemeinden
|
8
|
+
## 328 Ortschaften
|
9
|
+
|
10
|
+
|
11
|
+
e, Eisenstadt, Eisenstadt, 43 km²
|
12
|
+
eu, Eisenstadt-Umgebung, Eisenstadt, 453 km²
|
13
|
+
gs, Güssing, Güssing, 485 km²
|
14
|
+
je, Jennersdorf, Jennersdorf, 253 km²
|
15
|
+
ma, Mattersburg, Mattersburg, 238 km²
|
16
|
+
nd, Neusiedl am See, Neusiedl am See, 1039 km²
|
17
|
+
op, Oberpullendorf, Oberpullendorf, 701 km² ## also known as => Mittelburgenland
|
18
|
+
ow, Oberwart, Oberwart, 733 km²
|
19
|
+
eii, Rust, Rust, 20 km² ## also uses E - what to do for key??
|
20
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
## Niederoesterreich (N)
|
2
|
+
#
|
3
|
+
## ?? Statutarstädte -
|
4
|
+
## ?? Bezirke
|
5
|
+
##
|
6
|
+
## ?? Städte
|
7
|
+
## ?? Gemeinden
|
8
|
+
## ?? Ortschaften
|
9
|
+
|
10
|
+
Krems an der Donau, 52 km², 24_085 # KS
|
11
|
+
St. Pölten, 108 km², 52_145 # P
|
12
|
+
Waidhofen an der Ybbs, 132 km², 11_341 # WY
|
13
|
+
Wiener Neustadt, 61 km², 42_273 # WN
|
14
|
+
Amstetten, 1188 km², 112_944 # AM
|
15
|
+
Baden, 753 km², 140_078 # BN
|
16
|
+
Bruck an der Leitha, 495 km², 43_615 # BL
|
17
|
+
Gänserndorf, 1271 km², 97_460 # GF
|
18
|
+
Gmünd, 786 km², 37_420 # GD
|
19
|
+
Hollabrunn, 1011 km², 50_065 # HL
|
20
|
+
Horn, 784 km², 31_273 # HO
|
21
|
+
Korneuburg, 627 km², 76_370 # KO
|
22
|
+
Krems-Land (Krems an der Donau), 924 km², 55_945 # KR
|
23
|
+
Lilienfeld, 932 km², 26_040 # LF
|
24
|
+
Melk, 1014 km², 76_369 # ME
|
25
|
+
Mistelbach, 1291 km², 74_150 # MI
|
26
|
+
Mödling, 277 km², 115_677 # MD
|
27
|
+
Neunkirchen, 1146 km², 85_539 # NK
|
28
|
+
St. Pölten-Land (St. Pölten), 1122 km², 97_365 # PL
|
29
|
+
Scheibbs, 1023 km², 41_073 # SB
|
30
|
+
Tulln (Tulln an der Donau), 658 km², 72_104 # TU
|
31
|
+
Waidhofen an der Thaya, 669 km², 26_424 # WT
|
32
|
+
Wiener Neustadt-Land (Wiener Neustadt), 970 km², 75_285 # WB
|
33
|
+
Wien-Umgebung (Klosterneuburg), 484 km², 117_343 # WU, SW (f. Schwechat)
|
34
|
+
Zwettl, 1400 km², 43_102 # ZT
|
35
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
###
|
2
|
+
# use district.txt for name - why, why not??
|
3
|
+
# move to wien.db - why, why not ??
|
4
|
+
#
|
5
|
+
# include command \, -- why, why not?? change to - or something ?
|
6
|
+
# use ; as separator - why, why not??
|
7
|
+
|
8
|
+
|
9
|
+
## fix: cannot handle comma in title for autokey
|
10
|
+
## e.g. Wien 1.\, Innere Stadt
|
11
|
+
## becomes
|
12
|
+
## wien1,innerestadt
|
13
|
+
|
14
|
+
|
15
|
+
Innere Stadt (Wien 1.) ### fix/use: Wien 1.\, Innere Stadt
|
16
|
+
Leopoldstadt (Wien 2.) ### fix/use: Wien 2.\, Leopoldstadt
|
17
|
+
Landstraße (Wien 3.) ### fix/use: Wien 3.\, Landstraße
|
18
|
+
|
19
|
+
### fix/use: Wien 4.\, Wieden
|
20
|
+
### fix/use: Wien 5.\, Margareten
|
21
|
+
### fix/use: Wien 6.\, Mariahilf
|
22
|
+
### fix/use: Wien 7.\, Neubau
|
23
|
+
### fix/use: Wien 8.\, Josefstadt
|
24
|
+
### fix/use: Wien 9.\, Alsergrund
|
25
|
+
### fix/use: Wien 10.\, Favoriten
|
26
|
+
### fix/use: Wien 11.\, Simmering
|
27
|
+
### fix/use: Wien 12.\, Meidling
|
28
|
+
### fix/use: Wien 13.\, Hietzing
|
29
|
+
### fix/use: Wien 14.\, Penzing
|
30
|
+
### fix/use: Wien 15.\, Rudolfsheim-Fünfhaus
|
31
|
+
### fix/use: Wien 16.\, Ottakring
|
32
|
+
### fix/use: Wien 17.\, Hernals
|
33
|
+
### fix/use: Wien 18.\, Währing
|
34
|
+
### fix/use: Wien 19.\, Döbling
|
35
|
+
### fix/use: Wien 20.\, Brigittenau
|
36
|
+
### fix/use: Wien 21.\, Floridsdorf
|
37
|
+
### fix/use: Wien 22.\, Donaustadt
|
38
|
+
### fix/use: Wien 23.\, Liesing
|
39
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#############################
|
2
|
+
# Austria / Österreich (at)
|
3
|
+
|
4
|
+
|
5
|
+
# -- 9 Bundesländer
|
6
|
+
|
7
|
+
b, Burgenland, Eisenstadt, 3_962 km², 284_000
|
8
|
+
n, Niederösterreich [Lower Austria], St. Pölten, 19_186 km², 1_609_800
|
9
|
+
w, Wien [Vienna], Wien, 415 km², 1_707_000
|
10
|
+
|
11
|
+
st, Steiermark [Styria], Graz, 16_401 km², 1_208_900
|
12
|
+
k, Kärnten [Carinthia], Klagenfurt, 9_538 km², 560_700
|
13
|
+
|
14
|
+
o, Oberösterreich [Upper Austria], Linz, 11_980 km², 1_412_300
|
15
|
+
s, Salzburg, Salzburg, 7_156 km², 531_800
|
16
|
+
t, Tirol [Tyrol], Innsbruck, 12_640 km², 708_900
|
17
|
+
v, Vorarlberg, Bregenz, 2_601 km², 370_200
|
18
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
###
|
2
|
+
# Oberbayern > Bayern
|
3
|
+
#
|
4
|
+
# Verwaltungssitz: München
|
5
|
+
#
|
6
|
+
# Größte Städte: München (1.4m), Ingolstadt (128_300), Rosenheim (61_800),
|
7
|
+
# Freising (45_600), Dachau (44_000), Germering (38_400)
|
8
|
+
#
|
9
|
+
# Der Regierungsbezirk Oberbayern umfasst
|
10
|
+
#
|
11
|
+
# 3 kreisfreie Städte - München, Ingolstadt Rosenheim
|
12
|
+
# 20 Landkreise
|
13
|
+
|
14
|
+
|
15
|
+
m, München (Kreisefreie Stadt) ## use (Stadt) ???
|
16
|
+
in, Ingolstadt
|
17
|
+
ro, Rosenheim (Kreisefreie Stadt) ## use (Stadt) ???
|
18
|
+
|
19
|
+
|
20
|
+
aoe, Altötting
|
21
|
+
Bad Tölz-Wolfratshausen, Bad Tölz, 1_111 km²
|
22
|
+
## Kfz-Kennzeichen: TÖL, WOR - what to use ??
|
23
|
+
|
24
|
+
bgl, Berchtesgadener Land
|
25
|
+
dah, Dachau
|
26
|
+
ebe, Ebersberg
|
27
|
+
ei, Eichstätt
|
28
|
+
ed, Erding, Erding, 870 km²
|
29
|
+
fs, Freising, Freising, 802 km²
|
30
|
+
ffb, Fürstenfeldbruck
|
31
|
+
gap, Garmisch-Partenkirchen
|
32
|
+
ll, Landsberg am Lech
|
33
|
+
mb, Miesbach
|
34
|
+
mue, Mühldorf am Inn
|
35
|
+
|
36
|
+
München (Landkreis), München, 667 km² ### todo - use different key - see kreisfrei stadt muenchen
|
37
|
+
## Kfz-Kennzeichen: M, AIB, WOR - what to use ??
|
38
|
+
|
39
|
+
Neuburg-Schrobenhausen
|
40
|
+
## Kfz-Kennzeichen: ND, SOB - what to use ??
|
41
|
+
|
42
|
+
paf, Pfaffenhofen an der Ilm
|
43
|
+
|
44
|
+
Rosenheim (Landkreis) ### todo - use different key - see kreisfrei stadt rosenheim
|
45
|
+
## Kfz-Kennzeichen: RO, AIB, WS - what to use ??
|
46
|
+
|
47
|
+
sta, Starnberg ## kfz-kennzeichen: STA, WOR
|
48
|
+
ts, Traunstein
|
49
|
+
Weilheim-Schongau
|
50
|
+
## Kfz-Kennzeichen: WM, SOG - what to use ??
|
51
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
################################################
|
2
|
+
# Der Regierungsbezirk Oberfranken umfasst
|
3
|
+
#
|
4
|
+
# 4 kreisfreie Städte und
|
5
|
+
# Bamberg
|
6
|
+
# Bayreuth
|
7
|
+
# Coburg
|
8
|
+
# Hof
|
9
|
+
# 9 Landkreise
|
10
|
+
# Landkreis Bamberg
|
11
|
+
# Landkreis Bayreuth
|
12
|
+
# Landkreis Coburg
|
13
|
+
# Landkreis Forchheim
|
14
|
+
# Landkreis Hof
|
15
|
+
# Landkreis Kronach
|
16
|
+
# Landkreis Kulmbach
|
17
|
+
# Landkreis Lichtenfels
|
18
|
+
# Landkreis Wunsiedel im Fichtelgebirge
|
19
|
+
|
20
|
+
|
21
|
+
# 4 kreisfreie Städte und
|
22
|
+
|
23
|
+
Bamberg (Kreisfreie Stadt)
|
24
|
+
Bayreuth (Kreisfreie Stadt)
|
25
|
+
Coburg (Kreisfreie Stadt)
|
26
|
+
Hof (Kreisfreie Stadt)
|
27
|
+
|
28
|
+
|
29
|
+
# 9 Landkreise
|
30
|
+
## how to deal w/ same name?? (same keys)
|
31
|
+
## - use bambergland, bayreuthland etc. for key ??
|
32
|
+
|
33
|
+
Bamberg-Landkreis ## (Landkreis)
|
34
|
+
Bayreuth-Landkreis ## (Landkreis)
|
35
|
+
Coburg-Landkreis ## (Landkreis)
|
36
|
+
Hof-Landkreis ## (Landkreis)
|
37
|
+
|
38
|
+
Forchheim (Landkreis)
|
39
|
+
Kronach (Landkreis)
|
40
|
+
Kulmbach (Landkreis)
|
41
|
+
Lichtenfels (Landkreis)
|
42
|
+
Wunsiedel im Fichtelgebirge (Landkreis)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
########################################
|
2
|
+
# Bayern
|
3
|
+
#
|
4
|
+
# 7 Regierungsbezirke (administrative districts or governmental districts - use unit/division?)
|
5
|
+
|
6
|
+
ob, Oberbayern, München, 17_530 km² # 091 OB
|
7
|
+
nb, Niederbayern, Landshut, 10_329 km² # 092 NB
|
8
|
+
opf, Oberpfalz, Regensburg, 9_690 km² # 093 OPf
|
9
|
+
ofr, Oberfranken, Bayreuth, 7_231 km² # 094 Ofr.
|
10
|
+
mfr, Mittelfranken, Ansbach, 7_245 km² # 095 Mfr.
|
11
|
+
ufr, Unterfranken, Würzburg, 8_531 km² # 096 Ufr.
|
12
|
+
schw, Schwaben, Augsburg, 9_993 km² # 097 Schw.
|
13
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
################################
|
2
|
+
# German / Deutschland (de)
|
3
|
+
|
4
|
+
# -- 16 Länder
|
5
|
+
|
6
|
+
|
7
|
+
bw, Baden-Württemberg, Stuttgart, 35_752 km², 10_755_000
|
8
|
+
by, Bayern [Bavaria], München, 70_552 km², 12_542_000
|
9
|
+
be, Berlin, Berlin, 892 km², 3_469_000
|
10
|
+
bb, Brandenburg, Potsdam, 29_479 km², 2_500_000
|
11
|
+
hb, Bremen, Bremen, 419 km², 661_000
|
12
|
+
hh, Hamburg, Hamburg, 755 km², 1_788_000
|
13
|
+
he, Hessen [Hesse], Wiesbaden, 21_115 km², 6_066_000
|
14
|
+
mv, Mecklenburg-Vorpommern [Mecklenburg-Western Pomerania], Schwerin, 23_180 km², 1_639_000
|
15
|
+
ni, Niedersachsen [Lower Saxony], Hannover, 47_609 km², 7_914_000
|
16
|
+
nw, Nordrhein-Westfalen [North Rhine-Westphalia], Düsseldorf, 34_085 km², 17_837_000
|
17
|
+
rp, Rheinland-Pfalz [Rhineland-Palatinate], Mainz, 19_853 km², 3_999_000
|
18
|
+
sl, Saarland, Saarbrücken, 2_569 km², 1_018_000
|
19
|
+
sn, Sachsen [Saxony], Dresden, 18_416 km², 4_143_000
|
20
|
+
st, Sachsen-Anhalt [Saxony-Anhalt], Magdeburg, 20_446 km², 2_331_000
|
21
|
+
sh, Schleswig-Holstein, Kiel, 15_799 km², 2_833_000
|
22
|
+
th, Thüringen [Thuringia], Erfurt, 16_172 km², 2_231_000
|
23
|
+
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_fixture_matcher_adm2.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
|
11
|
+
class TestFixtureMatcherAdm2 < MiniTest::Test
|
12
|
+
|
13
|
+
include WorldDb::Matcher
|
14
|
+
|
15
|
+
def test_de
|
16
|
+
de = [
|
17
|
+
'de-deutschland!/by-bayern/districts',
|
18
|
+
'de-deutschland/by-bayern/districts',
|
19
|
+
'de-deutschland!/3--by-bayern/districts',
|
20
|
+
'de-deutschland/3--by-bayern/districts',
|
21
|
+
'europe/de-deutschland!/3--by-bayern/districts',
|
22
|
+
'europe/de-deutschland/3--by-bayern/districts',
|
23
|
+
]
|
24
|
+
assert_match_adm2_for_country( de, 'de', 'by' )
|
25
|
+
end # method test_de
|
26
|
+
|
27
|
+
def test_at
|
28
|
+
at = [
|
29
|
+
'at-austria!/n-niederoesterreich/counties',
|
30
|
+
'at-austria/n-niederoesterreich/counties',
|
31
|
+
'at-austria!/1--n-niederoesterreich/counties',
|
32
|
+
'at-austria/1--n-niederoesterreich/counties',
|
33
|
+
'at-austria!/1--n-niederoesterreich/counties',
|
34
|
+
'europe/at-austria/1--n-niederoesterreich/counties',
|
35
|
+
]
|
36
|
+
assert_match_adm2_for_country( at, 'at', 'n' )
|
37
|
+
end # method test_at
|
38
|
+
|
39
|
+
|
40
|
+
def test_at_more
|
41
|
+
b = [ 'at-austria!/1--b-burgenland/counties' ]
|
42
|
+
n = [ 'at-austria!/2--n-niederoesterreich/counties' ]
|
43
|
+
w = [ 'at-austria!/3--w-wien/counties' ]
|
44
|
+
|
45
|
+
assert_match_adm2_for_country( b, 'at', 'b' )
|
46
|
+
assert_match_adm2_for_country( n, 'at', 'n' )
|
47
|
+
assert_match_adm2_for_country( w, 'at', 'w' )
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
private
|
52
|
+
def assert_match_adm2_for_country( ary, expected_country_key, expected_region_key )
|
53
|
+
ary.each do |name|
|
54
|
+
found = match_adm2_for_country( name ) do |country_key,region_key|
|
55
|
+
assert_equal country_key, expected_country_key, "#{expected_country_key} expected is #{country_key}"
|
56
|
+
assert_equal region_key, expected_region_key, "#{expected_region_key} expected is #{region_key}"
|
57
|
+
end
|
58
|
+
assert found, "no match for '#{name}'"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end # class TestFixtureMatcherAdm2
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_fixture_matcher_adm3.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
|
11
|
+
class TestFixtureMatcherAdm3 < MiniTest::Test
|
12
|
+
|
13
|
+
include WorldDb::Matcher
|
14
|
+
|
15
|
+
def test_oberfranken
|
16
|
+
oberfranken = [
|
17
|
+
'de-deutschland!/by-bayern/4--oberfranken/counties',
|
18
|
+
'de-deutschland/by-bayern/4--oberfranken/counties',
|
19
|
+
'de-deutschland!/3--by-bayern/4--oberfranken/counties',
|
20
|
+
'de-deutschland/3--by-bayern/4--oberfranken/counties',
|
21
|
+
'europe/de-deutschland!/3--by-bayern/4--oberfranken/counties',
|
22
|
+
'europe/de-deutschland/3--by-bayern/4--oberfranken/counties',
|
23
|
+
]
|
24
|
+
assert_match_adm3_for_country( oberfranken, 'de', 'by', 'oberfranken' )
|
25
|
+
end # method test_oberfranken
|
26
|
+
|
27
|
+
|
28
|
+
private
|
29
|
+
def assert_match_adm3_for_country( ary, expected_country_key, expected_region_key, expected_adm2 )
|
30
|
+
ary.each do |name|
|
31
|
+
found = match_adm3_for_country( name ) do |country_key,region_key,adm2|
|
32
|
+
assert_equal country_key, expected_country_key, "#{expected_country_key} expected is #{country_key}"
|
33
|
+
assert_equal region_key, expected_region_key, "#{expected_region_key} expected is #{region_key}"
|
34
|
+
assert_equal adm2, expected_adm2, "#{expected_adm2} expected is #{adm2}"
|
35
|
+
end
|
36
|
+
assert found, "no match for '#{name}'"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end # class TestFixtureMatcherAdm3
|
41
|
+
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
###
|
4
|
+
# to run use
|
5
|
+
# ruby -I ./lib -I ./test test/test_read_adm.rb
|
6
|
+
|
7
|
+
|
8
|
+
require 'helper'
|
9
|
+
|
10
|
+
class TestReadAdm < MiniTest::Test
|
11
|
+
|
12
|
+
def setup
|
13
|
+
# delete all countries, regions, cities in in-memory only db
|
14
|
+
WorldDb.delete!
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_at
|
18
|
+
at = Country.create!( key: 'at',
|
19
|
+
name: 'Austria',
|
20
|
+
code: 'AUT',
|
21
|
+
pop: 0,
|
22
|
+
area: 0 )
|
23
|
+
|
24
|
+
reader = WorldDb::Reader.new( "#{WorldDb.root}/test/data/at-austria" )
|
25
|
+
reader.load_setup( 'setups/adm' )
|
26
|
+
|
27
|
+
###
|
28
|
+
## todo/fix: shorten level to l -- why, why not???
|
29
|
+
assert_equal 9, at.regions.where(level:1).count
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
def test_de
|
34
|
+
de = Country.create!( key: 'de',
|
35
|
+
name: 'Germany',
|
36
|
+
code: 'GER',
|
37
|
+
pop: 0,
|
38
|
+
area: 0 )
|
39
|
+
|
40
|
+
reader = WorldDb::Reader.new( "#{WorldDb.root}/test/data/de-deutschland" )
|
41
|
+
reader.load_setup( 'setups/adm' )
|
42
|
+
|
43
|
+
|
44
|
+
###
|
45
|
+
## todo/fix: shorten level to l -- why, why not???
|
46
|
+
|
47
|
+
assert_equal 16, de.regions.where(level:1).count
|
48
|
+
## assert_equal 16+??, de.regions.count
|
49
|
+
|
50
|
+
by = Region.find_by_key!( 'by' )
|
51
|
+
assert_equal 7, by.regions.where(level:2).count
|
52
|
+
## assert_equal 7+??, by.regions.count
|
53
|
+
|
54
|
+
## pp by.regions
|
55
|
+
|
56
|
+
ob = Region.find_by_key!( 'ob' )
|
57
|
+
assert_equal 'Oberbayern', ob.name
|
58
|
+
assert_equal 23, ob.regions.where(level:3).count
|
59
|
+
assert_equal 23, ob.regions.count
|
60
|
+
|
61
|
+
ofr = Region.find_by_key!( 'ofr' )
|
62
|
+
assert_equal 'Oberfranken', ofr.name
|
63
|
+
assert_equal 13, ofr.regions.where(level:3).count
|
64
|
+
assert_equal 13, ofr.regions.count
|
65
|
+
end
|
66
|
+
|
67
|
+
end # class TestReadAdm
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worlddb-models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: props
|
@@ -210,7 +210,19 @@ files:
|
|
210
210
|
- lib/worlddb/schema.rb
|
211
211
|
- lib/worlddb/stats.rb
|
212
212
|
- lib/worlddb/version.rb
|
213
|
+
- test/data/at-austria/1--b-burgenland/counties.txt
|
214
|
+
- test/data/at-austria/2--n-niederoesterreich/counties.txt
|
215
|
+
- test/data/at-austria/3--w-wien/counties.txt
|
216
|
+
- test/data/at-austria/setups/adm.txt
|
217
|
+
- test/data/at-austria/states.txt
|
218
|
+
- test/data/de-deutschland/3--by-bayern/1--oberbayern/counties.txt
|
219
|
+
- test/data/de-deutschland/3--by-bayern/4--oberfranken/counties.txt
|
220
|
+
- test/data/de-deutschland/3--by-bayern/districts.txt
|
221
|
+
- test/data/de-deutschland/setups/adm.txt
|
222
|
+
- test/data/de-deutschland/states.txt
|
213
223
|
- test/helper.rb
|
224
|
+
- test/test_fixture_matcher_adm2.rb
|
225
|
+
- test/test_fixture_matcher_adm3.rb
|
214
226
|
- test/test_fixture_matchers.rb
|
215
227
|
- test/test_fixture_matchers_ii.rb
|
216
228
|
- test/test_model_city.rb
|
@@ -218,6 +230,7 @@ files:
|
|
218
230
|
- test/test_model_country.rb
|
219
231
|
- test/test_model_region.rb
|
220
232
|
- test/test_models.rb
|
233
|
+
- test/test_read_adm.rb
|
221
234
|
homepage: https://github.com/worlddb/world.db.models
|
222
235
|
licenses:
|
223
236
|
- Public Domain
|
@@ -247,8 +260,11 @@ summary: worlddb - world.db schema 'n' models for easy (re)use
|
|
247
260
|
test_files:
|
248
261
|
- test/test_model_comp.rb
|
249
262
|
- test/test_models.rb
|
263
|
+
- test/test_read_adm.rb
|
250
264
|
- test/test_model_city.rb
|
251
265
|
- test/test_fixture_matchers.rb
|
252
266
|
- test/test_model_country.rb
|
253
267
|
- test/test_model_region.rb
|
268
|
+
- test/test_fixture_matcher_adm2.rb
|
269
|
+
- test/test_fixture_matcher_adm3.rb
|
254
270
|
- test/test_fixture_matchers_ii.rb
|