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 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: