remote_table 2.0.2 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,9 +2,3 @@ source :rubygems
2
2
 
3
3
  # Specify your gem's dependencies in remote_table.gemspec
4
4
  gemspec
5
-
6
- gem 'errata', '>=0.2.0'
7
- gem 'minitest'
8
- gem 'minitest-reporters'
9
- gem 'rake'
10
- gem 'yard'
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
@@ -1,3 +1,3 @@
1
1
  class RemoteTable
2
- VERSION = "2.0.2"
2
+ VERSION = "2.1.0"
3
3
  end
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.2
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-06-20 00:00:00.000000000 Z
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. Returns an
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: