worlddb 1.3.0 → 1.4.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.
- data/Rakefile +3 -1
- data/lib/worlddb.rb +6 -17
- data/lib/worlddb/data/fixtures.rb +0 -126
- data/lib/worlddb/reader.rb +63 -2
- data/lib/worlddb/version.rb +1 -1
- metadata +12 -12
data/Rakefile
CHANGED
@@ -56,7 +56,8 @@ namespace :dev do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
task :env => BUILD_DIR do
|
59
|
-
require './lib
|
59
|
+
require 'worlddb' ### NB: for local testing use rake -I ./lib dev:test e.g. do NOT forget to add -I ./lib
|
60
|
+
require 'logutils/db'
|
60
61
|
|
61
62
|
LogUtils::Logger.root.level = :info
|
62
63
|
|
@@ -65,6 +66,7 @@ namespace :dev do
|
|
65
66
|
end
|
66
67
|
|
67
68
|
task :create => :env do
|
69
|
+
LogDb.create
|
68
70
|
WorldDB.create
|
69
71
|
end
|
70
72
|
|
data/lib/worlddb.rb
CHANGED
@@ -69,27 +69,16 @@ module WorldDB
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
-
def self.read_all( include_path ) # load all builtins (using plain text reader); helper for convenience
|
73
|
-
reader = Reader.new
|
74
72
|
|
75
|
-
# too big for heroku free db plan (10,000 record limit)
|
76
|
-
# - sorry, can't load by default
|
77
|
-
fixture_excludes = [
|
78
|
-
'america/ve/cities'
|
79
|
-
]
|
80
|
-
|
81
|
-
ary = Fixtures.all - fixture_excludes
|
82
|
-
|
83
|
-
ary.each do |name|
|
84
|
-
reader.load( name, include_path )
|
85
|
-
end # each name
|
86
|
-
end # method read_all
|
87
|
-
|
88
|
-
|
89
73
|
def self.read_setup( setup, include_path )
|
90
|
-
|
74
|
+
reader = Reader.new
|
75
|
+
reader.load_setup( setup, include_path )
|
91
76
|
end
|
92
77
|
|
78
|
+
def self.read_all( include_path ) # load all builtins (using plain text reader); helper for convenience
|
79
|
+
read_setup( 'setups/all', include_path )
|
80
|
+
end # method read_all
|
81
|
+
|
93
82
|
|
94
83
|
# delete ALL records (use with care!)
|
95
84
|
def self.delete!
|
@@ -40,129 +40,3 @@ def find_world_db_path_from_gemfile_gitref!
|
|
40
40
|
|
41
41
|
cand
|
42
42
|
end
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
module WorldDB
|
47
|
-
|
48
|
-
module Fixtures # use shortcut/alias Fx?
|
49
|
-
|
50
|
-
def self.all # all builtin fixtures; helper for covenience
|
51
|
-
tag_fixtures +
|
52
|
-
country_fixtures +
|
53
|
-
lang_fixtures +
|
54
|
-
africa_fixtures +
|
55
|
-
america_fixtures +
|
56
|
-
europe_fixtures +
|
57
|
-
asia_fixtures +
|
58
|
-
oceania_fixtures
|
59
|
-
end
|
60
|
-
|
61
|
-
def self.tag_fixtures
|
62
|
-
['tags.1', 'tags.3']
|
63
|
-
end
|
64
|
-
|
65
|
-
def self.country_fixtures
|
66
|
-
['africa/countries',
|
67
|
-
'america/countries',
|
68
|
-
'asia/countries',
|
69
|
-
'europe/countries',
|
70
|
-
'oceania/countries']
|
71
|
-
end
|
72
|
-
|
73
|
-
def self.lang_fixtures
|
74
|
-
['langs',
|
75
|
-
'africa/3_more/lang',
|
76
|
-
'america/3_more/lang',
|
77
|
-
'asia/3_more/lang',
|
78
|
-
'europe/3_more/lang',
|
79
|
-
'oceania/3_more/lang'
|
80
|
-
]
|
81
|
-
end
|
82
|
-
|
83
|
-
def self.africa_fixtures
|
84
|
-
['1_codes/fifa',
|
85
|
-
'1_codes/internet',
|
86
|
-
'1_codes/iso3'].map { |path| "africa/#{path}" }
|
87
|
-
end
|
88
|
-
|
89
|
-
def self.america_fixtures
|
90
|
-
['1_codes/fifa',
|
91
|
-
'1_codes/internet',
|
92
|
-
'1_codes/iso3',
|
93
|
-
'1_codes/motor',
|
94
|
-
'br/regions',
|
95
|
-
'ca/regions',
|
96
|
-
'ca/cities',
|
97
|
-
'mx/regions',
|
98
|
-
'mx/cities',
|
99
|
-
'us/regions',
|
100
|
-
'us/cities',
|
101
|
-
've/regions',
|
102
|
-
've/cities'].map { |path| "america/#{path}" }
|
103
|
-
end
|
104
|
-
|
105
|
-
def self.asia_fixtures
|
106
|
-
['1_codes/fifa',
|
107
|
-
'1_codes/internet',
|
108
|
-
'1_codes/iso3',
|
109
|
-
'jp/cities'].map { |path| "asia/#{path}" }
|
110
|
-
end
|
111
|
-
|
112
|
-
def self.europe_fixtures
|
113
|
-
['1_codes/fifa',
|
114
|
-
'1_codes/internet',
|
115
|
-
'1_codes/iso3',
|
116
|
-
'1_codes/motor',
|
117
|
-
'at/regions',
|
118
|
-
'at/cities',
|
119
|
-
'be/regions',
|
120
|
-
'be/cities',
|
121
|
-
'bg/cities',
|
122
|
-
'by/cities',
|
123
|
-
'ch/cities',
|
124
|
-
'cy/cities',
|
125
|
-
'cz/regions',
|
126
|
-
'cz/cities',
|
127
|
-
'de/regions',
|
128
|
-
'de/cities',
|
129
|
-
'dk/cities',
|
130
|
-
'ee/cities',
|
131
|
-
'en/regions',
|
132
|
-
'en/cities',
|
133
|
-
'es/regions',
|
134
|
-
'es/cities',
|
135
|
-
'fi/cities',
|
136
|
-
'fr/regions',
|
137
|
-
'fr/cities',
|
138
|
-
'gr/cities',
|
139
|
-
'hr/cities',
|
140
|
-
'hu/cities',
|
141
|
-
'ie/cities',
|
142
|
-
'it/cities',
|
143
|
-
'lt/cities',
|
144
|
-
'lv/cities',
|
145
|
-
'nl/cities',
|
146
|
-
'no/cities',
|
147
|
-
'pl/cities',
|
148
|
-
'pt/cities',
|
149
|
-
'ro/cities',
|
150
|
-
'rs/cities',
|
151
|
-
'ru/cities',
|
152
|
-
'sc/cities',
|
153
|
-
'se/cities',
|
154
|
-
'tr/cities',
|
155
|
-
'ua/cities',
|
156
|
-
'wa/cities'].map { |path| "europe/#{path}" }
|
157
|
-
end
|
158
|
-
|
159
|
-
def self.oceania_fixtures
|
160
|
-
['1_codes/fifa',
|
161
|
-
'1_codes/internet',
|
162
|
-
'1_codes/iso3',
|
163
|
-
'au/cities'].map { |path| "oceania/#{path}" }
|
164
|
-
end
|
165
|
-
|
166
|
-
end # module Fixtures
|
167
|
-
|
168
|
-
end # module WorldDB
|
data/lib/worlddb/reader.rb
CHANGED
@@ -16,6 +16,64 @@ class Reader
|
|
16
16
|
end
|
17
17
|
|
18
18
|
|
19
|
+
def load_setup( setup, include_path )
|
20
|
+
ary = load_fixture_setup( setup, include_path )
|
21
|
+
|
22
|
+
### fix/todo:
|
23
|
+
# use to setups - use comment to remove fixtures
|
24
|
+
|
25
|
+
# too big for heroku free db plan (10,000 record limit)
|
26
|
+
# - sorry, can't load by default
|
27
|
+
fixture_excludes = [
|
28
|
+
'south-america/ve/cities'
|
29
|
+
]
|
30
|
+
|
31
|
+
ary = ary - fixture_excludes
|
32
|
+
|
33
|
+
ary.each do |name|
|
34
|
+
load( name, include_path )
|
35
|
+
end
|
36
|
+
end # method load_setup
|
37
|
+
|
38
|
+
|
39
|
+
## fix/todo: rename ??
|
40
|
+
def load_fixture_setup( name, include_path )
|
41
|
+
|
42
|
+
## todo/fix: cleanup quick and dirty code
|
43
|
+
|
44
|
+
path = "#{include_path}/#{name}.yml"
|
45
|
+
|
46
|
+
logger.info "parsing data '#{name}' (#{path})..."
|
47
|
+
|
48
|
+
text = File.read_utf8( path )
|
49
|
+
|
50
|
+
hash = YAML.load( text )
|
51
|
+
|
52
|
+
### build up array for fixtures from hash
|
53
|
+
|
54
|
+
ary = []
|
55
|
+
|
56
|
+
hash.each do |key_wild, value_wild|
|
57
|
+
key = key_wild.to_s.strip
|
58
|
+
|
59
|
+
logger.debug "yaml key:#{key_wild.class.name} >>#{key}<<, value:#{value_wild.class.name} >>#{value_wild}<<"
|
60
|
+
|
61
|
+
if value_wild.kind_of?( String ) # assume single fixture name
|
62
|
+
ary << value_wild
|
63
|
+
elsif value_wild.kind_of?( Array ) # assume array of fixture names as strings
|
64
|
+
ary = ary + value_wild
|
65
|
+
else
|
66
|
+
logger.error "unknow fixture type in setup (yaml key:#{key_wild.class.name} >>#{key}<<, value:#{value_wild.class.name} >>#{value_wild}<<); skipping"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
logger.debug "fixture setup:"
|
71
|
+
logger.debug ary.to_json
|
72
|
+
|
73
|
+
ary
|
74
|
+
end # load_fixture_setup
|
75
|
+
|
76
|
+
|
19
77
|
def load( name, include_path )
|
20
78
|
|
21
79
|
if name =~ /^lang/
|
@@ -32,9 +90,12 @@ class Reader
|
|
32
90
|
load_xxx( 'motor', name, include_path )
|
33
91
|
elsif name =~ /^tag.*\.(\d)$/
|
34
92
|
load_tags( name, include_path, :grade => $1.to_i )
|
35
|
-
elsif name =~ /^([a-z]
|
93
|
+
elsif name =~ /^([a-z][a-z\-]+[a-z])\/countries/ # e.g. africa/countries or america/countries
|
94
|
+
### NB: continent changed to regions (e.g. middle-east, caribbean, north-america, etc.)
|
95
|
+
### fix/cleanup/todo:
|
36
96
|
## auto-add continent (from folder structure) as tag
|
37
|
-
load_countries( name, include_path, :tags => $1 )
|
97
|
+
## load_countries( name, include_path, :tags => $1 )
|
98
|
+
load_countries( name, include_path )
|
38
99
|
elsif name =~ /\/([a-z]{2})\/cities/
|
39
100
|
## auto-add required country code (from folder structure)
|
40
101
|
load_cities( $1, name, include_path )
|
data/lib/worlddb/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worlddb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: textutils
|
16
|
-
requirement: &
|
16
|
+
requirement: &73513430 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.5.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *73513430
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: commander
|
27
|
-
requirement: &
|
27
|
+
requirement: &73513210 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 4.1.3
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *73513210
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activerecord
|
38
|
-
requirement: &
|
38
|
+
requirement: &73513000 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '3.2'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *73513000
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rdoc
|
49
|
-
requirement: &
|
49
|
+
requirement: &73512780 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '3.10'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *73512780
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: hoe
|
60
|
-
requirement: &
|
60
|
+
requirement: &73512560 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '3.3'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *73512560
|
69
69
|
description: worlddb - world.db command line tool
|
70
70
|
email: opensport@googlegroups.com
|
71
71
|
executables:
|