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
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.
|
4
|
+
version: 2.3.0
|
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-
|
11
|
+
date: 2015-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: props
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 1.2.2
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 1.2.2
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: tagutils
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,22 +179,21 @@ files:
|
|
179
179
|
- README.md
|
180
180
|
- Rakefile
|
181
181
|
- lib/worlddb/deleter.rb
|
182
|
+
- lib/worlddb/helpers/value_helper.rb
|
182
183
|
- lib/worlddb/matcher.rb
|
184
|
+
- lib/worlddb/matcher_adm.rb
|
183
185
|
- lib/worlddb/models.rb
|
184
186
|
- lib/worlddb/models/city.rb
|
185
|
-
- lib/worlddb/models/
|
187
|
+
- lib/worlddb/models/city_base.rb
|
186
188
|
- lib/worlddb/models/continent.rb
|
187
|
-
- lib/worlddb/models/continent_compat.rb
|
188
189
|
- lib/worlddb/models/country.rb
|
189
190
|
- lib/worlddb/models/country_code.rb
|
190
|
-
- lib/worlddb/models/country_compat.rb
|
191
191
|
- lib/worlddb/models/forward.rb
|
192
192
|
- lib/worlddb/models/lang.rb
|
193
|
-
- lib/worlddb/models/lang_compat.rb
|
194
193
|
- lib/worlddb/models/name.rb
|
195
194
|
- lib/worlddb/models/place.rb
|
196
|
-
- lib/worlddb/models/
|
197
|
-
- lib/worlddb/models/
|
195
|
+
- lib/worlddb/models/state.rb
|
196
|
+
- lib/worlddb/models/state_base.rb
|
198
197
|
- lib/worlddb/models/tagdb/tag.rb
|
199
198
|
- lib/worlddb/models/tagdb/tagging.rb
|
200
199
|
- lib/worlddb/models/usage.rb
|
@@ -202,35 +201,54 @@ files:
|
|
202
201
|
- lib/worlddb/reader.rb
|
203
202
|
- lib/worlddb/reader_file.rb
|
204
203
|
- lib/worlddb/reader_zip.rb
|
204
|
+
- lib/worlddb/readers/base.rb
|
205
205
|
- lib/worlddb/readers/city.rb
|
206
206
|
- lib/worlddb/readers/country.rb
|
207
207
|
- lib/worlddb/readers/lang.rb
|
208
|
-
- lib/worlddb/readers/
|
208
|
+
- lib/worlddb/readers/state.rb
|
209
|
+
- lib/worlddb/readers/state_tree.rb
|
209
210
|
- lib/worlddb/readers/usage.rb
|
210
211
|
- lib/worlddb/schema.rb
|
211
212
|
- lib/worlddb/stats.rb
|
213
|
+
- lib/worlddb/tree_reader.rb
|
212
214
|
- lib/worlddb/version.rb
|
215
|
+
- test/adm/test_fixture_matcher_adm2.rb
|
216
|
+
- test/adm/test_fixture_matcher_adm3.rb
|
217
|
+
- test/adm/test_fixture_matcher_tree.rb
|
218
|
+
- test/adm/test_read_adm.rb
|
219
|
+
- test/adm/test_read_tree.rb
|
213
220
|
- test/data/at-austria/1--b-burgenland/counties.txt
|
214
221
|
- test/data/at-austria/2--n-niederoesterreich/counties.txt
|
215
222
|
- test/data/at-austria/3--w-wien/counties.txt
|
223
|
+
- test/data/at-austria/orte.txt
|
216
224
|
- test/data/at-austria/setups/adm.txt
|
225
|
+
- test/data/at-austria/setups/tree.txt
|
217
226
|
- test/data/at-austria/states.txt
|
218
227
|
- test/data/de-deutschland/3--by-bayern/1--oberbayern/counties.txt
|
219
228
|
- test/data/de-deutschland/3--by-bayern/4--oberfranken/counties.txt
|
220
|
-
- test/data/de-deutschland/3--by-bayern/
|
229
|
+
- test/data/de-deutschland/3--by-bayern/4--oberfranken/orte.txt
|
230
|
+
- test/data/de-deutschland/3--by-bayern/4--oberfranken/orte_ii.txt
|
231
|
+
- test/data/de-deutschland/3--by-bayern/parts.txt
|
232
|
+
- test/data/de-deutschland/orte.txt
|
221
233
|
- test/data/de-deutschland/setups/adm.txt
|
234
|
+
- test/data/de-deutschland/setups/tree.txt
|
222
235
|
- test/data/de-deutschland/states.txt
|
223
236
|
- test/helper.rb
|
224
|
-
- test/test_fixture_matcher_adm2.rb
|
225
|
-
- test/test_fixture_matcher_adm3.rb
|
226
237
|
- test/test_fixture_matchers.rb
|
227
238
|
- test/test_fixture_matchers_ii.rb
|
228
239
|
- test/test_model_city.rb
|
229
|
-
- test/
|
240
|
+
- test/test_model_compat.rb
|
230
241
|
- test/test_model_country.rb
|
231
|
-
- test/
|
242
|
+
- test/test_model_state.rb
|
243
|
+
- test/test_model_states_at.rb
|
244
|
+
- test/test_model_states_de.rb
|
232
245
|
- test/test_models.rb
|
233
|
-
- test/
|
246
|
+
- test/test_parse_city.rb
|
247
|
+
- test/test_parse_country.rb
|
248
|
+
- test/test_parse_state.rb
|
249
|
+
- test/test_state_tree_reader_at.rb
|
250
|
+
- test/test_state_tree_reader_de.rb
|
251
|
+
- test/test_tree_reader.rb
|
234
252
|
homepage: https://github.com/worlddb/world.db.models
|
235
253
|
licenses:
|
236
254
|
- Public Domain
|
@@ -258,13 +276,23 @@ signing_key:
|
|
258
276
|
specification_version: 4
|
259
277
|
summary: worlddb - world.db schema 'n' models for easy (re)use
|
260
278
|
test_files:
|
261
|
-
- test/test_model_comp.rb
|
262
279
|
- test/test_models.rb
|
263
|
-
- test/
|
280
|
+
- test/adm/test_read_tree.rb
|
281
|
+
- test/adm/test_fixture_matcher_tree.rb
|
282
|
+
- test/adm/test_read_adm.rb
|
283
|
+
- test/adm/test_fixture_matcher_adm2.rb
|
284
|
+
- test/adm/test_fixture_matcher_adm3.rb
|
285
|
+
- test/test_parse_country.rb
|
286
|
+
- test/test_model_state.rb
|
287
|
+
- test/test_tree_reader.rb
|
264
288
|
- test/test_model_city.rb
|
265
289
|
- test/test_fixture_matchers.rb
|
266
290
|
- test/test_model_country.rb
|
267
|
-
- test/
|
268
|
-
- test/
|
269
|
-
- test/
|
291
|
+
- test/test_parse_city.rb
|
292
|
+
- test/test_model_compat.rb
|
293
|
+
- test/test_model_states_de.rb
|
294
|
+
- test/test_state_tree_reader_at.rb
|
295
|
+
- test/test_state_tree_reader_de.rb
|
296
|
+
- test/test_parse_state.rb
|
270
297
|
- test/test_fixture_matchers_ii.rb
|
298
|
+
- test/test_model_states_at.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module WorldDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
#############################################################
|
7
|
-
# collect depreciated or methods for future removal here
|
8
|
-
# - keep for now for commpatibility (for old code)
|
9
|
-
|
10
|
-
class City
|
11
|
-
|
12
|
-
def title() name; end
|
13
|
-
def title=(value) self.name = value; end
|
14
|
-
|
15
|
-
scope :by_title, ->{ order( 'name asc' ) } # order by title (a-z)
|
16
|
-
|
17
|
-
|
18
|
-
def synonyms() alt_names; end
|
19
|
-
def synonyms=(value) self.alt_names = value; end
|
20
|
-
|
21
|
-
def title_w_synonyms( opts={} ) all_names( opts ); end # depreciated: use all_names instead
|
22
|
-
|
23
|
-
end # class Cities
|
24
|
-
|
25
|
-
end # module Model
|
26
|
-
end # module WorldDb
|
27
|
-
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module WorldDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
#############################################################
|
7
|
-
# collect depreciated or methods for future removal here
|
8
|
-
# - keep for now for commpatibility (for old code)
|
9
|
-
|
10
|
-
class Continent
|
11
|
-
|
12
|
-
def title() name; end
|
13
|
-
def title=(value) self.name = value; end
|
14
|
-
|
15
|
-
scope :by_title, ->{ order( 'name asc' ) } # order by title (a-z)
|
16
|
-
|
17
|
-
def synonyms() alt_names; end
|
18
|
-
def synonyms=(value) self.alt_names = value; end
|
19
|
-
|
20
|
-
end # class Continent
|
21
|
-
|
22
|
-
|
23
|
-
end # module Model
|
24
|
-
end # module WorldDb
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module WorldDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
#############################################################
|
7
|
-
# collect depreciated or methods for future removal here
|
8
|
-
# - keep for now for commpatibility (for old code)
|
9
|
-
|
10
|
-
|
11
|
-
class Country
|
12
|
-
|
13
|
-
def title() name; end
|
14
|
-
def title=(value) self.name = value; end
|
15
|
-
|
16
|
-
scope :by_title, ->{ order( 'name asc' ) } # order by title (a-z)
|
17
|
-
|
18
|
-
def iso2() alpha2; end
|
19
|
-
def iso2=(value) self.alpha2 = value; end
|
20
|
-
|
21
|
-
def iso3() alpha3; end
|
22
|
-
def iso3=(value) self.alpha3 = value; end
|
23
|
-
|
24
|
-
|
25
|
-
def synonyms() alt_names; end
|
26
|
-
def synonyms=(value) self.alt_names = value; end
|
27
|
-
|
28
|
-
def title_w_synonyms( opts={} ) all_names( opts ); end # depreciated: use all_names instead
|
29
|
-
|
30
|
-
|
31
|
-
end # class Country
|
32
|
-
|
33
|
-
end # module Model
|
34
|
-
end # module WorldDb
|
35
|
-
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module WorldDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
#############################################################
|
7
|
-
# collect depreciated or methods for future removal here
|
8
|
-
# - keep for now for commpatibility (for old code)
|
9
|
-
|
10
|
-
|
11
|
-
class Lang
|
12
|
-
|
13
|
-
#####################################################
|
14
|
-
# alias for name (remove! add depreciated api call ???)
|
15
|
-
def title() name; end
|
16
|
-
def title=(value) self.name = value; end
|
17
|
-
|
18
|
-
scope :by_title, ->{ order( 'name asc' ) } # order by title (a-z)
|
19
|
-
|
20
|
-
end # class Lang
|
21
|
-
|
22
|
-
end # module Model
|
23
|
-
end # module WorldDb
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module WorldDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
#############################################################
|
7
|
-
# collect depreciated or methods for future removal here
|
8
|
-
# - keep for now for commpatibility (for old code)
|
9
|
-
|
10
|
-
class Region
|
11
|
-
|
12
|
-
def title() name; end
|
13
|
-
def title=(value) self.name = value; end
|
14
|
-
|
15
|
-
scope :by_title, ->{ order( 'name asc' ) } # order by title (a-z)
|
16
|
-
|
17
|
-
def synonyms() alt_names; end
|
18
|
-
def synonyms=(value) self.alt_names = value; end
|
19
|
-
|
20
|
-
def title_w_synonyms( opts={} ) all_names( opts ); end # depreciated: use all_names instead
|
21
|
-
|
22
|
-
|
23
|
-
end # class Region
|
24
|
-
|
25
|
-
end # module Model
|
26
|
-
end # module WorldDb
|
@@ -1,79 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module WorldDb
|
4
|
-
|
5
|
-
class RegionReader
|
6
|
-
|
7
|
-
include LogUtils::Logging
|
8
|
-
|
9
|
-
## make models available by default with namespace
|
10
|
-
# e.g. lets you use Usage instead of Model::Usage
|
11
|
-
include Models
|
12
|
-
|
13
|
-
## value helpers e.g. is_year?, is_taglist? etc.
|
14
|
-
include TextUtils::ValueHelper
|
15
|
-
|
16
|
-
|
17
|
-
def self.from_zip( zip_file, entry_path, more_attribs={} )
|
18
|
-
## get text content from zip
|
19
|
-
|
20
|
-
entry = zip_file.find_entry( entry_path )
|
21
|
-
|
22
|
-
## todo/fix: add force encoding to utf-8 ??
|
23
|
-
## check!!!
|
24
|
-
## clean/prepprocess lines
|
25
|
-
## e.g. CR/LF (/r/n) to LF (e.g. /n)
|
26
|
-
text = entry.get_input_stream().read()
|
27
|
-
|
28
|
-
## NOTE: needs logger ref; only available in instance methods; use global logger for now
|
29
|
-
logger = LogUtils::Logger.root
|
30
|
-
logger.debug "text.encoding.name (before): #{text.encoding.name}"
|
31
|
-
#####
|
32
|
-
# NB: ASCII-8BIT == BINARY == Encoding Unknown; Raw Bytes Here
|
33
|
-
## NB:
|
34
|
-
# for now "hardcoded" to utf8 - what else can we do?
|
35
|
-
# - note: force_encoding will NOT change the chars only change the assumed encoding w/o translation
|
36
|
-
text = text.force_encoding( Encoding::UTF_8 )
|
37
|
-
logger.debug "text.encoding.name (after): #{text.encoding.name}"
|
38
|
-
|
39
|
-
## todo:
|
40
|
-
# NB: for convenience: convert fancy unicode dashes/hyphens to plain ascii hyphen-minus
|
41
|
-
## text = TextUtils.convert_unicode_dashes_to_plain_ascii( text, path: path )
|
42
|
-
|
43
|
-
self.from_string( text, more_attribs )
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.from_file( path, more_attribs={} )
|
47
|
-
## note: assume/enfore utf-8 encoding (with or without BOM - byte order mark)
|
48
|
-
## - see textutils/utils.rb
|
49
|
-
text = File.read_utf8( path )
|
50
|
-
self.from_string( text, more_attribs )
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.from_string( text, more_attribs={} )
|
54
|
-
RegionReader.new( text, more_attribs )
|
55
|
-
end
|
56
|
-
|
57
|
-
|
58
|
-
def skip_tags?() @skip_tags == true; end
|
59
|
-
def strict?() @strict == true; end
|
60
|
-
|
61
|
-
def initialize( text, more_attribs={} )
|
62
|
-
## todo/fix: how to add opts={} ???
|
63
|
-
|
64
|
-
@text = text
|
65
|
-
@more_attribs = more_attribs
|
66
|
-
end
|
67
|
-
|
68
|
-
|
69
|
-
def read()
|
70
|
-
reader = ValuesReader.from_string( @text, @more_attribs )
|
71
|
-
|
72
|
-
reader.each_line do |attribs, values|
|
73
|
-
opts = { skip_tags: skip_tags? }
|
74
|
-
Region.create_or_update_from_attribs( attribs, values, opts )
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
end # class RegionReader
|
79
|
-
end # module WorldDb
|
@@ -1,62 +0,0 @@
|
|
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
|
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
|
-
|