remote_table 2.0.2 → 2.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.
- data/Gemfile +0 -6
- data/lib/remote_table.rb +4 -1
- data/lib/remote_table/shp.rb +29 -0
- data/lib/remote_table/version.rb +1 -1
- data/remote_table.gemspec +10 -2
- data/test/helper.rb +2 -3
- data/test/test_shapefile.rb +13 -0
- metadata +120 -5
data/Gemfile
CHANGED
data/lib/remote_table.rb
CHANGED
@@ -27,6 +27,7 @@ require 'remote_table/fixed_width'
|
|
27
27
|
require 'remote_table/html'
|
28
28
|
require 'remote_table/xml'
|
29
29
|
require 'remote_table/yaml'
|
30
|
+
require 'remote_table/shp'
|
30
31
|
|
31
32
|
class Hash
|
32
33
|
# Added by remote_table to store a hash (think checksum) of the data with which a particular Hash is initialized.
|
@@ -89,6 +90,8 @@ class RemoteTable
|
|
89
90
|
:xml
|
90
91
|
when /yaml/, /yml/
|
91
92
|
:yaml
|
93
|
+
when /shp/
|
94
|
+
:shp
|
92
95
|
end
|
93
96
|
end
|
94
97
|
|
@@ -121,7 +124,7 @@ class RemoteTable
|
|
121
124
|
VALID = {
|
122
125
|
:compression => [:gz, :zip, :bz2, :exe],
|
123
126
|
:packing => [:tar],
|
124
|
-
:format => [:xlsx, :xls, :delimited, :ods, :fixed_width, :html, :xml, :yaml, :csv],
|
127
|
+
:format => [:xlsx, :xls, :delimited, :ods, :fixed_width, :html, :xml, :yaml, :csv, :shp],
|
125
128
|
}
|
126
129
|
DEFAULT = {
|
127
130
|
:streaming => false,
|
@@ -0,0 +1,29 @@
|
|
1
|
+
class RemoteTable
|
2
|
+
# Mixed in to process SHP with the georuby library.
|
3
|
+
module Shp
|
4
|
+
def _each
|
5
|
+
require 'geo_ruby'
|
6
|
+
|
7
|
+
shp = Dir[File.join(local_copy.path, '*.shp')].first
|
8
|
+
GeoRuby::Shp4r::ShpFile.open(shp) do |shapefile|
|
9
|
+
shapefile.each do |row|
|
10
|
+
hsh = {}
|
11
|
+
row.data.attributes.each do |name, value|
|
12
|
+
hsh[name] = value
|
13
|
+
end
|
14
|
+
|
15
|
+
envelope = row.geometry.envelope
|
16
|
+
hsh['center'] = envelope.center
|
17
|
+
hsh['upper_corner_x'] = envelope.upper_corner.x
|
18
|
+
hsh['upper_corner_y'] = envelope.upper_corner.y
|
19
|
+
hsh['lower_corner_x'] = envelope.lower_corner.x
|
20
|
+
hsh['lower_corner_y'] = envelope.lower_corner.y
|
21
|
+
|
22
|
+
yield hsh
|
23
|
+
end
|
24
|
+
end
|
25
|
+
ensure
|
26
|
+
local_copy.cleanup
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/remote_table/version.rb
CHANGED
data/remote_table.gemspec
CHANGED
@@ -7,8 +7,8 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.authors = ["Seamus Abshere", "Andy Rossmeissl"]
|
8
8
|
s.email = ["seamus@abshere.net"]
|
9
9
|
s.homepage = "https://github.com/seamusabshere/remote_table"
|
10
|
-
s.summary = %{Open Google Docs spreadsheets, local or remote XLSX, XLS, ODS, CSV (comma separated), TSV (tab separated), other delimited, fixed-width files.}
|
11
|
-
s.description = %{Open Google Docs spreadsheets, local or remote XLSX, XLS, ODS, CSV (comma separated), TSV (tab separated), other delimited, fixed-width files. Returns an Array of Arrays or Hashes, depending on whether there are headers.}
|
10
|
+
s.summary = %{Open Google Docs spreadsheets, local or remote XLSX, XLS, ODS, CSV (comma separated), TSV (tab separated), other delimited, fixed-width files, and shapefiles.}
|
11
|
+
s.description = %{Open Google Docs spreadsheets, local or remote XLSX, XLS, ODS, CSV (comma separated), TSV (tab separated), other delimited, fixed-width files, and shapefiles. Returns an Array of Arrays or Hashes, depending on whether there are headers.}
|
12
12
|
|
13
13
|
s.rubyforge_project = "remotetable"
|
14
14
|
|
@@ -24,4 +24,12 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_runtime_dependency 'unix_utils', '>=0.0.8'
|
25
25
|
s.add_runtime_dependency 'fastercsv', '>=1.5.0'
|
26
26
|
s.add_runtime_dependency 'hash_digest'
|
27
|
+
|
28
|
+
s.add_development_dependency 'errata', '>=0.2.0'
|
29
|
+
s.add_development_dependency 'georuby'
|
30
|
+
s.add_development_dependency 'dbf'
|
31
|
+
s.add_development_dependency 'minitest'
|
32
|
+
s.add_development_dependency 'minitest-reporters'
|
33
|
+
s.add_development_dependency 'rake'
|
34
|
+
s.add_development_dependency 'yard'
|
27
35
|
end
|
data/test/helper.rb
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'bundler/setup'
|
3
2
|
require 'minitest/spec'
|
4
3
|
require 'minitest/autorun'
|
5
4
|
require 'minitest/reporters'
|
6
|
-
MiniTest::Unit.runner = MiniTest::SuiteRunner.new
|
7
|
-
MiniTest::Unit.runner.reporters << MiniTest::Reporters::SpecReporter.new
|
5
|
+
#MiniTest::Unit.runner = MiniTest::SuiteRunner.new
|
6
|
+
#MiniTest::Unit.runner.reporters << MiniTest::Reporters::SpecReporter.new
|
8
7
|
require 'remote_table'
|
9
8
|
|
10
9
|
class MiniTest::Spec
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe RemoteTable do
|
4
|
+
it "opens a shapefile" do
|
5
|
+
t = RemoteTable.new 'http://www.nrel.gov/gis/cfm/data/GIS_Data_Technology_Specific/United_States/Solar/High_Resolution/Lower_48_DNI_High_Resolution.zip', :format => :shp, :crop => [5,5]
|
6
|
+
t[0]['upper_corner_x'].must_equal -94.89999999999999
|
7
|
+
t[0]['upper_corner_y'].must_equal 49.7
|
8
|
+
t[0]['lower_corner_x'].must_equal -94.99999999999999
|
9
|
+
t[0]['lower_corner_y'].must_equal 49.6
|
10
|
+
t[0]['DNI01'].must_equal 1269.0
|
11
|
+
t[0]['DNIANN'].must_equal 3315.0
|
12
|
+
end
|
13
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: remote_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-10-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -124,9 +124,121 @@ dependencies:
|
|
124
124
|
- - ! '>='
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: '0'
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: errata
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
131
|
+
requirements:
|
132
|
+
- - ! '>='
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: 0.2.0
|
135
|
+
type: :development
|
136
|
+
prerelease: false
|
137
|
+
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 0.2.0
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: georuby
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
type: :development
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
155
|
+
requirements:
|
156
|
+
- - ! '>='
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: dbf
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
163
|
+
requirements:
|
164
|
+
- - ! '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
type: :development
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
172
|
+
- - ! '>='
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
- !ruby/object:Gem::Dependency
|
176
|
+
name: minitest
|
177
|
+
requirement: !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
179
|
+
requirements:
|
180
|
+
- - ! '>='
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
type: :development
|
184
|
+
prerelease: false
|
185
|
+
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
none: false
|
187
|
+
requirements:
|
188
|
+
- - ! '>='
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '0'
|
191
|
+
- !ruby/object:Gem::Dependency
|
192
|
+
name: minitest-reporters
|
193
|
+
requirement: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
195
|
+
requirements:
|
196
|
+
- - ! '>='
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '0'
|
199
|
+
type: :development
|
200
|
+
prerelease: false
|
201
|
+
version_requirements: !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
203
|
+
requirements:
|
204
|
+
- - ! '>='
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '0'
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: rake
|
209
|
+
requirement: !ruby/object:Gem::Requirement
|
210
|
+
none: false
|
211
|
+
requirements:
|
212
|
+
- - ! '>='
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '0'
|
215
|
+
type: :development
|
216
|
+
prerelease: false
|
217
|
+
version_requirements: !ruby/object:Gem::Requirement
|
218
|
+
none: false
|
219
|
+
requirements:
|
220
|
+
- - ! '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: yard
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
none: false
|
227
|
+
requirements:
|
228
|
+
- - ! '>='
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
231
|
+
type: :development
|
232
|
+
prerelease: false
|
233
|
+
version_requirements: !ruby/object:Gem::Requirement
|
234
|
+
none: false
|
235
|
+
requirements:
|
236
|
+
- - ! '>='
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: '0'
|
127
239
|
description: Open Google Docs spreadsheets, local or remote XLSX, XLS, ODS, CSV (comma
|
128
|
-
separated), TSV (tab separated), other delimited, fixed-width files
|
129
|
-
Array of Arrays or Hashes, depending on whether there are headers.
|
240
|
+
separated), TSV (tab separated), other delimited, fixed-width files, and shapefiles.
|
241
|
+
Returns an Array of Arrays or Hashes, depending on whether there are headers.
|
130
242
|
email:
|
131
243
|
- seamus@abshere.net
|
132
244
|
executables: []
|
@@ -150,6 +262,7 @@ files:
|
|
150
262
|
- lib/remote_table/plaintext.rb
|
151
263
|
- lib/remote_table/processed_by_nokogiri.rb
|
152
264
|
- lib/remote_table/processed_by_roo.rb
|
265
|
+
- lib/remote_table/shp.rb
|
153
266
|
- lib/remote_table/transformer.rb
|
154
267
|
- lib/remote_table/version.rb
|
155
268
|
- lib/remote_table/xls.rb
|
@@ -179,6 +292,7 @@ files:
|
|
179
292
|
- test/test_old_syntax.rb
|
180
293
|
- test/test_old_transform.rb
|
181
294
|
- test/test_remote_table.rb
|
295
|
+
- test/test_shapefile.rb
|
182
296
|
homepage: https://github.com/seamusabshere/remote_table
|
183
297
|
licenses: []
|
184
298
|
post_install_message:
|
@@ -203,7 +317,7 @@ rubygems_version: 1.8.24
|
|
203
317
|
signing_key:
|
204
318
|
specification_version: 3
|
205
319
|
summary: Open Google Docs spreadsheets, local or remote XLSX, XLS, ODS, CSV (comma
|
206
|
-
separated), TSV (tab separated), other delimited, fixed-width files.
|
320
|
+
separated), TSV (tab separated), other delimited, fixed-width files, and shapefiles.
|
207
321
|
test_files:
|
208
322
|
- test/fixtures/data.yml
|
209
323
|
- test/helper.rb
|
@@ -227,4 +341,5 @@ test_files:
|
|
227
341
|
- test/test_old_syntax.rb
|
228
342
|
- test/test_old_transform.rb
|
229
343
|
- test/test_remote_table.rb
|
344
|
+
- test/test_shapefile.rb
|
230
345
|
has_rdoc:
|