geo_coder 0.1.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.
Files changed (119) hide show
  1. data/Gemfile +12 -0
  2. data/Gemfile.lock +32 -0
  3. data/History.txt +6 -0
  4. data/Makefile +13 -0
  5. data/Manifest.txt +18 -0
  6. data/README.rdoc +197 -0
  7. data/Rakefile +53 -0
  8. data/TODO.txt +8 -0
  9. data/VERSION +1 -0
  10. data/bin/build_indexes +8 -0
  11. data/bin/rebuild_cluster +22 -0
  12. data/bin/rebuild_metaphones +23 -0
  13. data/bin/tiger_import +59 -0
  14. data/demos/demo/app/ext/geocodewrap.rb +84 -0
  15. data/demos/demo/app/views/index.builder +13 -0
  16. data/demos/demo/app/views/index.erb +71 -0
  17. data/demos/demo/config.ru +12 -0
  18. data/demos/demo/config/bootstraps.rb +130 -0
  19. data/demos/demo/config/geoenvironment.rb +25 -0
  20. data/demos/demo/geocoder_helper.rb +12 -0
  21. data/demos/demo/geocom_geocode.rb +10 -0
  22. data/demos/demo/main.rb +3 -0
  23. data/demos/demo/rakefile.rb +17 -0
  24. data/demos/demo/tmp/restart.txt +0 -0
  25. data/demos/simpledemo/views/index.builder +13 -0
  26. data/demos/simpledemo/views/index.erb +69 -0
  27. data/demos/simpledemo/ws.rb +83 -0
  28. data/doc/Makefile +7 -0
  29. data/doc/html4css1.css +279 -0
  30. data/doc/lookup.rst +193 -0
  31. data/doc/parsing.rst +125 -0
  32. data/doc/voidspace.css +147 -0
  33. data/geo_coder.gemspec +172 -0
  34. data/lib/geocoder/us.rb +21 -0
  35. data/lib/geocoder/us/address.rb +290 -0
  36. data/lib/geocoder/us/constants.rb +670 -0
  37. data/lib/geocoder/us/database.rb +745 -0
  38. data/lib/geocoder/us/import.rb +181 -0
  39. data/lib/geocoder/us/import/tiger.rb +13 -0
  40. data/lib/geocoder/us/numbers.rb +58 -0
  41. data/navteq/README +4 -0
  42. data/navteq/convert.sql +37 -0
  43. data/navteq/navteq_import +39 -0
  44. data/navteq/prepare.sql +92 -0
  45. data/sql/cluster.sql +16 -0
  46. data/sql/convert.sql +80 -0
  47. data/sql/create.sql +37 -0
  48. data/sql/index.sql +12 -0
  49. data/sql/place.csv +104944 -0
  50. data/sql/place.sql +104948 -0
  51. data/sql/setup.sql +78 -0
  52. data/src/Makefile +13 -0
  53. data/src/README +14 -0
  54. data/src/liblwgeom/Makefile +75 -0
  55. data/src/liblwgeom/box2d.c +54 -0
  56. data/src/liblwgeom/lex.yy.c +4799 -0
  57. data/src/liblwgeom/liblwgeom.h +1405 -0
  58. data/src/liblwgeom/lwalgorithm.c +946 -0
  59. data/src/liblwgeom/lwalgorithm.h +52 -0
  60. data/src/liblwgeom/lwcircstring.c +759 -0
  61. data/src/liblwgeom/lwcollection.c +541 -0
  62. data/src/liblwgeom/lwcompound.c +118 -0
  63. data/src/liblwgeom/lwcurvepoly.c +86 -0
  64. data/src/liblwgeom/lwgeom.c +886 -0
  65. data/src/liblwgeom/lwgeom_api.c +2201 -0
  66. data/src/liblwgeom/lwgparse.c +1219 -0
  67. data/src/liblwgeom/lwgunparse.c +1054 -0
  68. data/src/liblwgeom/lwline.c +525 -0
  69. data/src/liblwgeom/lwmcurve.c +125 -0
  70. data/src/liblwgeom/lwmline.c +137 -0
  71. data/src/liblwgeom/lwmpoint.c +138 -0
  72. data/src/liblwgeom/lwmpoly.c +141 -0
  73. data/src/liblwgeom/lwmsurface.c +129 -0
  74. data/src/liblwgeom/lwpoint.c +439 -0
  75. data/src/liblwgeom/lwpoly.c +579 -0
  76. data/src/liblwgeom/lwsegmentize.c +1047 -0
  77. data/src/liblwgeom/lwutil.c +369 -0
  78. data/src/liblwgeom/measures.c +861 -0
  79. data/src/liblwgeom/postgis_config.h +93 -0
  80. data/src/liblwgeom/ptarray.c +847 -0
  81. data/src/liblwgeom/vsprintf.c +179 -0
  82. data/src/liblwgeom/wktparse.h +126 -0
  83. data/src/liblwgeom/wktparse.lex +74 -0
  84. data/src/liblwgeom/wktparse.tab.c +2353 -0
  85. data/src/liblwgeom/wktparse.tab.h +145 -0
  86. data/src/liblwgeom/wktparse.y +385 -0
  87. data/src/libsqlite3_geocoder/Makefile +22 -0
  88. data/src/libsqlite3_geocoder/Makefile.nix +15 -0
  89. data/src/libsqlite3_geocoder/Makefile.redhat +15 -0
  90. data/src/libsqlite3_geocoder/extension.c +121 -0
  91. data/src/libsqlite3_geocoder/extension.h +13 -0
  92. data/src/libsqlite3_geocoder/levenshtein.c +42 -0
  93. data/src/libsqlite3_geocoder/metaphon.c +278 -0
  94. data/src/libsqlite3_geocoder/util.c +37 -0
  95. data/src/libsqlite3_geocoder/wkb_compress.c +54 -0
  96. data/src/metaphone/Makefile +7 -0
  97. data/src/metaphone/README +49 -0
  98. data/src/metaphone/extension.c +37 -0
  99. data/src/metaphone/metaphon.c +251 -0
  100. data/src/shp2sqlite/Makefile +37 -0
  101. data/src/shp2sqlite/Makefile.nix +36 -0
  102. data/src/shp2sqlite/Makefile.redhat +35 -0
  103. data/src/shp2sqlite/dbfopen.c +1595 -0
  104. data/src/shp2sqlite/getopt.c +695 -0
  105. data/src/shp2sqlite/getopt.h +127 -0
  106. data/src/shp2sqlite/shapefil.h +500 -0
  107. data/src/shp2sqlite/shp2sqlite.c +1974 -0
  108. data/src/shp2sqlite/shpopen.c +1894 -0
  109. data/tests/address.rb +236 -0
  110. data/tests/benchmark.rb +20 -0
  111. data/tests/constants.rb +57 -0
  112. data/tests/data/address-sample.csv +52 -0
  113. data/tests/data/db-test.csv +57 -0
  114. data/tests/data/locations.csv +4 -0
  115. data/tests/database.rb +137 -0
  116. data/tests/generate.rb +34 -0
  117. data/tests/numbers.rb +46 -0
  118. data/tests/run.rb +11 -0
  119. metadata +237 -0
data/tests/generate.rb ADDED
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'test/unit'
4
+ require 'geocoder/us/database'
5
+ require 'fastercsv'
6
+
7
+ db = Geocoder::US::Database.new("/mnt/tiger2008/geocoder.db",
8
+ "/home/sderle/geocoder/lib/libsqlite3_geocoder.so")
9
+
10
+ if ARGV.length == 1
11
+ result = db.geocode(ARGV[0], 0, 50)
12
+ p result
13
+ else
14
+ FasterCSV.open(ARGV[1], "w", {:headers => true, :write_headers => true}) do |output|
15
+ FasterCSV.foreach(ARGV[0], {:headers => true}) do |row|
16
+ result = db.geocode(row[0])
17
+ count = result.map{|a|[a[:lat], a[:lon]]}.to_set.length
18
+ if !result.empty?
19
+ row.headers[1..13].each_with_index {|f,i|
20
+ if result[0][f.to_sym] != row[i+1]
21
+ print "#{row[0]} !#{f} -> #{result[0][f]} != #{row[i+1]}\n"
22
+ end
23
+ }
24
+ result[0][:count] = count
25
+ result[0][:address] = row[0]
26
+ result[0][:comment] = row[-1]
27
+ columns = row.headers.map{|col|col.to_sym}
28
+ output << result[0].values_at(*columns)
29
+ else
30
+ print "!!! #{row[0]}\n"
31
+ end
32
+ end
33
+ end
34
+ end
data/tests/numbers.rb ADDED
@@ -0,0 +1,46 @@
1
+ $LOAD_PATH.unshift '../lib'
2
+
3
+ require 'test/unit'
4
+ require 'geocoder/us/numbers'
5
+
6
+ include Geocoder::US
7
+
8
+ class TestAddress < Test::Unit::TestCase
9
+ def test_number_to_cardinal
10
+ assert_equal 'one', Cardinals[1]
11
+ assert_equal 'ten', Cardinals[10]
12
+ assert_equal 'twelve', Cardinals[12]
13
+ assert_equal 'eighty-seven', Cardinals[87]
14
+ end
15
+
16
+ def test_cardinal_to_number
17
+ assert_equal 1, Cardinals['one']
18
+ assert_equal 1, Cardinals['One']
19
+ assert_equal 10, Cardinals['ten']
20
+ assert_equal 12, Cardinals['twelve']
21
+ assert_equal 87, Cardinals['eighty-seven']
22
+ assert_equal 87, Cardinals['eighty seven']
23
+ assert_equal 87, Cardinals['eightyseven']
24
+ end
25
+
26
+ def test_number_to_ordinal
27
+ assert_equal 'first', Ordinals[1]
28
+ assert_equal 'second', Ordinals[2]
29
+ assert_equal 'tenth', Ordinals[10]
30
+ assert_equal 'twelfth', Ordinals[12]
31
+ assert_equal 'twentieth', Ordinals[20]
32
+ assert_equal 'twenty-second', Ordinals[22]
33
+ assert_equal 'eighty-seventh', Ordinals[87]
34
+ end
35
+
36
+ def test_ordinal_to_number
37
+ assert_equal 1, Ordinals['first']
38
+ assert_equal 1, Ordinals['First']
39
+ assert_equal 10, Ordinals['tenth']
40
+ assert_equal 12, Ordinals['twelfth']
41
+ assert_equal 73, Ordinals['seventy-third']
42
+ assert_equal 74, Ordinals['seventy fourth']
43
+ assert_equal 75, Ordinals['seventyfifth']
44
+ assert_equal nil, Ordinals['seventy-eleventh']
45
+ end
46
+ end
data/tests/run.rb ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $LOAD_PATH.unshift 'tests'
4
+ $LOAD_PATH.unshift 'lib'
5
+
6
+ require 'test/unit'
7
+ require 'numbers'
8
+ require 'constants'
9
+ require 'address'
10
+ require 'database'
11
+
metadata ADDED
@@ -0,0 +1,237 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: geo_coder
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Travis Dempsey
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-09-21 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sqlite3-ruby
16
+ requirement: &2167322460 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - =
20
+ - !ruby/object:Gem::Version
21
+ version: 1.2.5
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2167322460
25
+ - !ruby/object:Gem::Dependency
26
+ name: text
27
+ requirement: &2167321840 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2167321840
36
+ - !ruby/object:Gem::Dependency
37
+ name: bundler
38
+ requirement: &2167321360 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2167321360
47
+ - !ruby/object:Gem::Dependency
48
+ name: jeweler
49
+ requirement: &2167288980 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.6.4
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *2167288980
58
+ - !ruby/object:Gem::Dependency
59
+ name: rcov
60
+ requirement: &2167288340 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *2167288340
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: &2167287720 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *2167287720
80
+ description: Geocode a text address.
81
+ email: dempsey.travis@gmail.com
82
+ executables:
83
+ - build_indexes
84
+ - rebuild_cluster
85
+ - rebuild_metaphones
86
+ - tiger_import
87
+ extensions: []
88
+ extra_rdoc_files:
89
+ - README.rdoc
90
+ files:
91
+ - Gemfile
92
+ - Gemfile.lock
93
+ - History.txt
94
+ - Makefile
95
+ - Manifest.txt
96
+ - README.rdoc
97
+ - Rakefile
98
+ - TODO.txt
99
+ - VERSION
100
+ - bin/build_indexes
101
+ - bin/rebuild_cluster
102
+ - bin/rebuild_metaphones
103
+ - bin/tiger_import
104
+ - demos/demo/app/ext/geocodewrap.rb
105
+ - demos/demo/app/views/index.builder
106
+ - demos/demo/app/views/index.erb
107
+ - demos/demo/config.ru
108
+ - demos/demo/config/bootstraps.rb
109
+ - demos/demo/config/geoenvironment.rb
110
+ - demos/demo/geocoder_helper.rb
111
+ - demos/demo/geocom_geocode.rb
112
+ - demos/demo/main.rb
113
+ - demos/demo/rakefile.rb
114
+ - demos/demo/tmp/restart.txt
115
+ - demos/simpledemo/views/index.builder
116
+ - demos/simpledemo/views/index.erb
117
+ - demos/simpledemo/ws.rb
118
+ - doc/Makefile
119
+ - doc/html4css1.css
120
+ - doc/lookup.rst
121
+ - doc/parsing.rst
122
+ - doc/voidspace.css
123
+ - geo_coder.gemspec
124
+ - lib/geocoder/us.rb
125
+ - lib/geocoder/us/address.rb
126
+ - lib/geocoder/us/constants.rb
127
+ - lib/geocoder/us/database.rb
128
+ - lib/geocoder/us/import.rb
129
+ - lib/geocoder/us/import/tiger.rb
130
+ - lib/geocoder/us/numbers.rb
131
+ - navteq/README
132
+ - navteq/convert.sql
133
+ - navteq/navteq_import
134
+ - navteq/prepare.sql
135
+ - sql/cluster.sql
136
+ - sql/convert.sql
137
+ - sql/create.sql
138
+ - sql/index.sql
139
+ - sql/place.csv
140
+ - sql/place.sql
141
+ - sql/setup.sql
142
+ - src/Makefile
143
+ - src/README
144
+ - src/liblwgeom/Makefile
145
+ - src/liblwgeom/box2d.c
146
+ - src/liblwgeom/lex.yy.c
147
+ - src/liblwgeom/liblwgeom.h
148
+ - src/liblwgeom/lwalgorithm.c
149
+ - src/liblwgeom/lwalgorithm.h
150
+ - src/liblwgeom/lwcircstring.c
151
+ - src/liblwgeom/lwcollection.c
152
+ - src/liblwgeom/lwcompound.c
153
+ - src/liblwgeom/lwcurvepoly.c
154
+ - src/liblwgeom/lwgeom.c
155
+ - src/liblwgeom/lwgeom_api.c
156
+ - src/liblwgeom/lwgparse.c
157
+ - src/liblwgeom/lwgunparse.c
158
+ - src/liblwgeom/lwline.c
159
+ - src/liblwgeom/lwmcurve.c
160
+ - src/liblwgeom/lwmline.c
161
+ - src/liblwgeom/lwmpoint.c
162
+ - src/liblwgeom/lwmpoly.c
163
+ - src/liblwgeom/lwmsurface.c
164
+ - src/liblwgeom/lwpoint.c
165
+ - src/liblwgeom/lwpoly.c
166
+ - src/liblwgeom/lwsegmentize.c
167
+ - src/liblwgeom/lwutil.c
168
+ - src/liblwgeom/measures.c
169
+ - src/liblwgeom/postgis_config.h
170
+ - src/liblwgeom/ptarray.c
171
+ - src/liblwgeom/vsprintf.c
172
+ - src/liblwgeom/wktparse.h
173
+ - src/liblwgeom/wktparse.lex
174
+ - src/liblwgeom/wktparse.tab.c
175
+ - src/liblwgeom/wktparse.tab.h
176
+ - src/liblwgeom/wktparse.y
177
+ - src/libsqlite3_geocoder/Makefile
178
+ - src/libsqlite3_geocoder/Makefile.nix
179
+ - src/libsqlite3_geocoder/Makefile.redhat
180
+ - src/libsqlite3_geocoder/extension.c
181
+ - src/libsqlite3_geocoder/extension.h
182
+ - src/libsqlite3_geocoder/levenshtein.c
183
+ - src/libsqlite3_geocoder/metaphon.c
184
+ - src/libsqlite3_geocoder/util.c
185
+ - src/libsqlite3_geocoder/wkb_compress.c
186
+ - src/metaphone/Makefile
187
+ - src/metaphone/README
188
+ - src/metaphone/extension.c
189
+ - src/metaphone/metaphon.c
190
+ - src/shp2sqlite/Makefile
191
+ - src/shp2sqlite/Makefile.nix
192
+ - src/shp2sqlite/Makefile.redhat
193
+ - src/shp2sqlite/dbfopen.c
194
+ - src/shp2sqlite/getopt.c
195
+ - src/shp2sqlite/getopt.h
196
+ - src/shp2sqlite/shapefil.h
197
+ - src/shp2sqlite/shp2sqlite.c
198
+ - src/shp2sqlite/shpopen.c
199
+ - tests/address.rb
200
+ - tests/benchmark.rb
201
+ - tests/constants.rb
202
+ - tests/data/address-sample.csv
203
+ - tests/data/db-test.csv
204
+ - tests/data/locations.csv
205
+ - tests/database.rb
206
+ - tests/generate.rb
207
+ - tests/numbers.rb
208
+ - tests/run.rb
209
+ homepage: http://github.com/kornypoet/geo_coder
210
+ licenses:
211
+ - MIT
212
+ post_install_message:
213
+ rdoc_options: []
214
+ require_paths:
215
+ - lib
216
+ required_ruby_version: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ segments:
223
+ - 0
224
+ hash: -2521903607750621196
225
+ required_rubygems_version: !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ! '>='
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ requirements: []
232
+ rubyforge_project:
233
+ rubygems_version: 1.8.10
234
+ signing_key:
235
+ specification_version: 3
236
+ summary: Geocoder based upon the Geocommons Geocoder.
237
+ test_files: []