remote_table

Open local or remote XLSX, XLS, ODS, CSV and fixed-width files.

Real-life usage

Used by data_miner (github.com/seamusabshere/data_miner)

Example

Taken from #{GEMDIR}/test/test_remote_table.rb:

should "open an XLSX" do
  t = RemoteTable.new 'www.customerreferenceprogram.org/uploads/CRP_RFP_template.xlsx'
  assert_equal "Secure encryption of all data", t[5]["Requirements"]
end

or on the console

?> t = RemoteTable.new 'http://www.fueleconomy.gov/FEG/epadata/98guide6.zip', 'filename' => '98guide6.csv'
=> #<RemoteTable:0x359da50 [...]>
?> t[0]
=> {"cyl"=>"6", "eng dscr"=>"DOHC VTEC", "trans dscr"=>"2MODE CLKUP", "trans"=>"Auto(L4)", "cmb"=>"20", "2pv"=>nil, "carline name"=>"NSX", "displ"=>"3.0", "ucmb"=>"23.5311", "hpv"=>nil, "4pv"=>nil, "Class"=>"TWO SEATERS", "Manufacturer"=>"ACURA", "fl"=>"P", "2lv"=>nil, "G"=>nil, "hlv"=>nil, "drv"=>"R", "cty"=>"18", "ucty"=>"19.8733", "S"=>nil, "4lv"=>nil, "fcost"=>"1050", "T"=>nil, "hwy"=>"24", "uhwy"=>"30.3612"}

See the test file and also data_miner examples of custom parsers.

Wishlist

  • The new parser syntax (aka transformer) hasn’t been defined yet… only the old-style syntax is available

  • We currently call curl (and a lot of other utilities) using a shell. Is there a safer way to do this?

  • Row hashes may come out differently for Ruby 1.8 and Ruby 1.9, which ruins the whole purpose.

  • Since Enumerable provides #to_a, I’m not sure if it’s caching the row loading.

Authors

Copyright © 2011 Brighter Planet. See LICENSE for details.