worlddb 0.3.2 → 0.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/Manifest.txt +1 -0
- data/lib/worlddb/utils.rb +140 -0
- data/lib/worlddb/version.rb +1 -1
- data/lib/worlddb.rb +10 -4
- metadata +6 -5
data/Manifest.txt
CHANGED
@@ -0,0 +1,140 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
|
4
|
+
class Time
|
5
|
+
|
6
|
+
def self.cet( str ) # central european time (cet) + central european summer time (cest)
|
7
|
+
ActiveSupport::TimeZone['Vienna'].parse( str )
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.eet( str ) # eastern european time (eet) + 2 hours
|
11
|
+
ActiveSupport::TimeZone['Bucharest'].parse( str )
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.cst( str ) # central standard time (cst) - 6 hours
|
15
|
+
ActiveSupport::TimeZone['Mexico City'].parse( str )
|
16
|
+
end
|
17
|
+
|
18
|
+
end # class Time
|
19
|
+
|
20
|
+
|
21
|
+
class File
|
22
|
+
def self.read_utf8( path )
|
23
|
+
open( path, 'r:bom|utf-8' ) do |file|
|
24
|
+
file.read
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end # class File
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
##
|
32
|
+
# fix/todo: share helper w/ other readers
|
33
|
+
|
34
|
+
# helper
|
35
|
+
# change at/2012_13/bl to at.2012/13.bl
|
36
|
+
# or quali_2012_13_europe_c to quali.2012/13.europe.c
|
37
|
+
|
38
|
+
def fixture_name_to_prop_key( name )
|
39
|
+
prop_key = name.gsub( '/', '.' )
|
40
|
+
prop_key = prop_key.gsub( /(\d{4})_(\d{2})/, '\1/\2' ) # 2012_13 => 2012/13
|
41
|
+
prop_key = prop_key.gsub( '_', '.' )
|
42
|
+
prop_key
|
43
|
+
end
|
44
|
+
|
45
|
+
############
|
46
|
+
### fix/todo: share helper for all text readers/parsers- where to put it?
|
47
|
+
###
|
48
|
+
|
49
|
+
def title_esc_regex( title_unescaped )
|
50
|
+
|
51
|
+
## escape regex special chars e.g. . to \. and ( to \( etc.
|
52
|
+
# e.g. Benfica Lis.
|
53
|
+
# e.g. Club Atlético Colón (Santa Fe)
|
54
|
+
|
55
|
+
## NB: cannot use Regexp.escape! will escape space '' to '\ '
|
56
|
+
## title = Regexp.escape( title_unescaped )
|
57
|
+
title = title_unescaped.gsub( '.', '\.' )
|
58
|
+
title = title.gsub( '(', '\(' )
|
59
|
+
title = title.gsub( ')', '\)' )
|
60
|
+
|
61
|
+
## match accented char with or without accents
|
62
|
+
## add (ü|ue) etc.
|
63
|
+
## also make - optional change to (-| ) e.g. Blau-Weiss == Blau Weiss
|
64
|
+
|
65
|
+
## todo: add some more
|
66
|
+
## see http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references for more
|
67
|
+
##
|
68
|
+
## reuse for all readers!
|
69
|
+
|
70
|
+
alternatives = [
|
71
|
+
['-', '(-| )'],
|
72
|
+
['ß', '(ß|ss)'],
|
73
|
+
['æ', '(æ|ae)'],
|
74
|
+
['á', '(á|a)'], ## e.g. Bogotá
|
75
|
+
['ã', '(ã|a)'], ## e.g São Paulo
|
76
|
+
['ä', '(ä|ae)'], ## add a ?
|
77
|
+
['Ö', '(Ö|Oe)'], ## e.g. Österreich
|
78
|
+
['ö', '(ö|oe)'], ## add o ?
|
79
|
+
['ó', '(ó|o)'], ## e.g. Colón
|
80
|
+
['ü', '(ü|ue)'], ## add u ?
|
81
|
+
['é', '(é|e)'], ## e.g. Vélez
|
82
|
+
['ê', '(ê|e)'], ## e.g. Grêmio
|
83
|
+
['ñ', '(ñ|n)'], ## e.g. Porteño
|
84
|
+
['ú', '(ú|u)'] ## e.g. Fútbol
|
85
|
+
]
|
86
|
+
|
87
|
+
alternatives.each do |alt|
|
88
|
+
title = title.gsub( alt[0], alt[1] )
|
89
|
+
end
|
90
|
+
|
91
|
+
title
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
class FixtureReader
|
96
|
+
|
97
|
+
def initialize( logger=nil, path )
|
98
|
+
if logger.nil?
|
99
|
+
@logger = Logger.new(STDOUT)
|
100
|
+
@logger.level = Logger::INFO
|
101
|
+
else
|
102
|
+
@logger = logger
|
103
|
+
end
|
104
|
+
|
105
|
+
@path = path
|
106
|
+
|
107
|
+
## nb: assume/enfore utf-8 encoding (with or without BOM - byte order mark)
|
108
|
+
## - see worlddb/utils.rb
|
109
|
+
@data = File.read_utf8( @path )
|
110
|
+
end
|
111
|
+
|
112
|
+
attr_reader :logger
|
113
|
+
|
114
|
+
|
115
|
+
def each_line
|
116
|
+
@data.each_line do |line|
|
117
|
+
|
118
|
+
if line =~ /^\s*#/
|
119
|
+
# skip komments and do NOT copy to result (keep comments secret!)
|
120
|
+
logger.debug 'skipping comment line'
|
121
|
+
next
|
122
|
+
end
|
123
|
+
|
124
|
+
if line =~ /^\s*$/
|
125
|
+
# kommentar oder leerzeile überspringen
|
126
|
+
logger.debug 'skipping blank line'
|
127
|
+
next
|
128
|
+
end
|
129
|
+
|
130
|
+
# remove leading and trailing whitespace
|
131
|
+
line = line.strip
|
132
|
+
|
133
|
+
yield(line)
|
134
|
+
end # lines.each
|
135
|
+
end
|
136
|
+
|
137
|
+
end # class FixtureReader
|
138
|
+
|
139
|
+
|
140
|
+
|
data/lib/worlddb/version.rb
CHANGED
data/lib/worlddb.rb
CHANGED
@@ -19,8 +19,8 @@ require 'active_record' ## todo: add sqlite3? etc.
|
|
19
19
|
|
20
20
|
# our own code
|
21
21
|
|
22
|
-
|
23
|
-
|
22
|
+
|
23
|
+
require 'worlddb/version'
|
24
24
|
|
25
25
|
require 'worlddb/models/prop'
|
26
26
|
require 'worlddb/models/country'
|
@@ -29,9 +29,9 @@ require 'worlddb/models/city'
|
|
29
29
|
require 'worlddb/models/tag'
|
30
30
|
require 'worlddb/models/tagging'
|
31
31
|
require 'worlddb/schema' # NB: requires worlddb/models (include WorldDB::Models)
|
32
|
+
require 'worlddb/utils'
|
32
33
|
require 'worlddb/reader'
|
33
34
|
require 'worlddb/loader'
|
34
|
-
require 'worlddb/version'
|
35
35
|
require 'worlddb/cli/opts'
|
36
36
|
require 'worlddb/cli/runner'
|
37
37
|
|
@@ -154,6 +154,7 @@ module WorldDB
|
|
154
154
|
|
155
155
|
# delete ALL records (use with care!)
|
156
156
|
def self.delete!
|
157
|
+
puts '*** deleting world table records/data...'
|
157
158
|
Deleter.new.run
|
158
159
|
end # method delete!
|
159
160
|
|
@@ -194,4 +195,9 @@ module WorldDB
|
|
194
195
|
end # module WorldDB
|
195
196
|
|
196
197
|
|
197
|
-
|
198
|
+
if __FILE__ == $0
|
199
|
+
WorldDB.main
|
200
|
+
else
|
201
|
+
# say hello
|
202
|
+
puts WorldDB.banner
|
203
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worlddb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gerald Bauer
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-11-
|
18
|
+
date: 2012-11-20 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: activerecord
|
@@ -173,6 +173,7 @@ files:
|
|
173
173
|
- lib/worlddb/models/tagging.rb
|
174
174
|
- lib/worlddb/reader.rb
|
175
175
|
- lib/worlddb/schema.rb
|
176
|
+
- lib/worlddb/utils.rb
|
176
177
|
- lib/worlddb/version.rb
|
177
178
|
homepage: http://geraldb.github.com/world.db
|
178
179
|
licenses: []
|