remote_table 0.2.16 → 0.2.17

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.16
1
+ 0.2.17
@@ -59,13 +59,13 @@ class RemoteTable
59
59
 
60
60
  def skip_rows!
61
61
  return unless skip
62
- `cat #{path} | tail -n +#{skip + 1} > #{path}.tmp`
62
+ RemoteTable.backtick_with_reporting "cat #{path} | tail -n +#{skip + 1} > #{path}.tmp"
63
63
  FileUtils.mv "#{path}.tmp", path
64
64
  end
65
65
 
66
66
  def convert_file_to_utf8!
67
67
  return if encoding == 'UTF-8' or encoding == 'UTF8'
68
- `iconv -c -f #{encoding} -t UTF-8 #{path} > #{path}.tmp`
68
+ RemoteTable.backtick_with_reporting "iconv -c -f #{encoding} -t UTF-8 #{path} > #{path}.tmp"
69
69
  FileUtils.mv "#{path}.tmp", path
70
70
  end
71
71
 
@@ -75,13 +75,13 @@ class RemoteTable
75
75
 
76
76
  def cut_columns!
77
77
  return unless cut
78
- `cat #{path} | cut -c #{cut} > #{path}.tmp`
78
+ RemoteTable.backtick_with_reporting "cat #{path} | cut -c #{cut} > #{path}.tmp"
79
79
  FileUtils.mv "#{path}.tmp", path
80
80
  end
81
81
 
82
82
  def crop_rows!
83
83
  return unless crop
84
- `cat #{path} | tail -n +#{crop.first} | head -n #{crop.last - crop.first + 1} > #{path}.tmp`
84
+ RemoteTable.backtick_with_reporting "cat #{path} | tail -n +#{crop.first} | head -n #{crop.last - crop.first + 1} > #{path}.tmp"
85
85
  FileUtils.mv "#{path}.tmp", path
86
86
  end
87
87
 
@@ -47,7 +47,8 @@ class RemoteTable
47
47
  end
48
48
 
49
49
  def move_and_process(path, extname, cmd, args)
50
- `mv #{path} #{path}.#{extname} && #{cmd} #{path}.#{extname} #{args}`
50
+ FileUtils.mv path, "#{path}.#{extname}"
51
+ RemoteTable.backtick_with_reporting "#{cmd} #{path}.#{extname} #{args}"
51
52
  end
52
53
 
53
54
  # ex. A: 2007-01.csv.gz (compression not capable of storing multiple files)
@@ -20,16 +20,14 @@ class RemoteTable
20
20
  if parsed_url.scheme == 'file'
21
21
  parsed_url.path
22
22
  else
23
- cmd = %{
24
- curl \
25
- --silent \
26
- --header "Expect: " \
27
- --location \
28
- #{"--data \"#{form_data}\"" if form_data.present?} \
29
- "#{parsed_url}" \
23
+ RemoteTable.backtick_with_reporting %{
24
+ curl
25
+ --header "Expect: "
26
+ --location
27
+ #{"--data \"#{form_data}\"" if form_data.present?}
28
+ "#{parsed_url}"
30
29
  --output "#{path}"
31
30
  }
32
- `#{cmd}`
33
31
  path
34
32
  end
35
33
  end
data/lib/remote_table.rb CHANGED
@@ -56,6 +56,26 @@ class RemoteTable
56
56
  def <=>(other)
57
57
  raise "Not implemented"
58
58
  end
59
+
60
+ protected
61
+
62
+ # TODO this should probably live somewhere else
63
+ def self.backtick_with_reporting(cmd)
64
+ cmd = cmd.gsub /\s+/m, ' '
65
+ cmd = cmd + ' 2>&1' unless cmd.include? '2>'
66
+ output = `#{cmd}`
67
+ unless $?.success?
68
+ raise %{
69
+ From the remote_table gem...
70
+
71
+ Command failed:
72
+ #{cmd}
73
+
74
+ Output:
75
+ #{output}
76
+ }
77
+ end
78
+ end
59
79
 
60
80
  private
61
81
 
data/remote_table.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{remote_table}
8
- s.version = "0.2.16"
8
+ s.version = "0.2.17"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Seamus Abshere", "Andy Rossmeissl"]
12
- s.date = %q{2010-04-27}
12
+ s.date = %q{2010-04-28}
13
13
  s.description = %q{Remotely open and parse Excel XLS, ODS, CSV and fixed-width tables.}
14
14
  s.email = %q{seamus@abshere.net}
15
15
  s.extra_rdoc_files = [
@@ -50,21 +50,7 @@ class RemoteTableTest < Test::Unit::TestCase
50
50
  ]
51
51
  end
52
52
 
53
- if ENV['NEW'] == 'true'
54
- end
55
-
56
- if ENV['OLD'] == 'true'
57
- should "read an HTML table made with frontpage" do
58
- t = RemoteTable.new :url => "http://www.faa.gov/air_traffic/publications/atpubs/CNT/5-2-E.htm",
59
- :encoding => 'US-ASCII',
60
- :row_xpath => '//table/tr[2]/td/table/tr',
61
- :column_xpath => 'td'
62
- assert_equal 'E110', t.rows.first['Designator']
63
- assert_equal 'EMBRAER', t.rows.first['Manufacturer']
64
- assert_equal 'EZKC', t.rows.last['Designator']
65
- assert_equal 'EZ King Cobra', t.rows.last['Model']
66
- end
67
-
53
+ if ENV['ALL'] == 'true' or ENV['SLOW'] == 'true'
68
54
  should "open an XLS inside a zip file" do
69
55
  t = RemoteTable.new(:url => 'http://www.fueleconomy.gov/FEG/epadata/02data.zip', :filename => 'guide_jan28.xls')
70
56
  assert_equal 'ACURA', t.rows.first['Manufacturer']
@@ -79,6 +65,58 @@ class RemoteTableTest < Test::Unit::TestCase
79
65
  assert_equal nil, t.rows.first[:Manufacturer]
80
66
  end
81
67
 
68
+ should "open a CSV inside a zip file" do
69
+ t = RemoteTable.new(:url => 'http://www.fueleconomy.gov/FEG/epadata/98guide6.zip', :filename => '98guide6.csv')
70
+ assert_equal 'ACURA', t.rows.first['Manufacturer']
71
+ assert_equal 'NSX', t.rows.first['carline name']
72
+ assert_equal 'TOYOTA', t.rows.last['Manufacturer']
73
+ assert_equal 'RAV4 SOFT TOP 4WD', t.rows.last['carline name']
74
+ end
75
+
76
+ should "open a fixed-width file with an inline schema inside a zip file" do
77
+ t = RemoteTable.new(:url => 'http://www.fueleconomy.gov/FEG/epadata/00data.zip',
78
+ :filename => 'Gd6-dsc.txt',
79
+ :format => :fixed_width,
80
+ :crop => 21..26, # inclusive
81
+ :cut => '2-',
82
+ :select => lambda { |row| /\A[A-Z]/.match row['code'] },
83
+ :schema => [[ 'code', 2, { :type => :string } ],
84
+ [ 'spacer', 2 ],
85
+ [ 'name', 52, { :type => :string } ]])
86
+ assert_equal 'regular grade gasoline (octane number of 87)', t.rows.first['name']
87
+ assert_equal 'R', t.rows.first['code']
88
+ assert_equal 'electricity', t.rows.last['name']
89
+ assert_equal 'El', t.rows.last['code']
90
+ end
91
+
92
+ should "send form data, follow redirects and use a filename glob" do
93
+ url = 'http://www.transtats.bts.gov/DownLoad_Table.asp?Table_ID=293&Has_Group=3&Is_Zipped=0'
94
+ form_data = 'UserTableName=T_100_Segment__All_Carriers&DBShortName=Air_Carriers&RawDataTable=T_T100_SEGMENT_ALL_CARRIER&sqlstr=+SELECT+DEPARTURES_SCHEDULED%2CDEPARTURES_PERFORMED%2CPAYLOAD%2CSEATS%2CPASSENGERS%2CFREIGHT%2CMAIL%2CDISTANCE%2CRAMP_TO_RAMP%2CAIR_TIME%2CUNIQUE_CARRIER%2CAIRLINE_ID%2CUNIQUE_CARRIER_NAME%2CUNIQUE_CARRIER_ENTITY%2CREGION%2CCARRIER%2CCARRIER_NAME%2CCARRIER_GROUP%2CCARRIER_GROUP_NEW%2CORIGIN%2CORIGIN_CITY_NAME%2CORIGIN_CITY_NUM%2CORIGIN_STATE_ABR%2CORIGIN_STATE_FIPS%2CORIGIN_STATE_NM%2CORIGIN_COUNTRY%2CORIGIN_COUNTRY_NAME%2CORIGIN_WAC%2CDEST%2CDEST_CITY_NAME%2CDEST_CITY_NUM%2CDEST_STATE_ABR%2CDEST_STATE_FIPS%2CDEST_STATE_NM%2CDEST_COUNTRY%2CDEST_COUNTRY_NAME%2CDEST_WAC%2CAIRCRAFT_GROUP%2CAIRCRAFT_TYPE%2CAIRCRAFT_CONFIG%2CYEAR%2CQUARTER%2CMONTH%2CDISTANCE_GROUP%2CCLASS%2CDATA_SOURCE+FROM++T_T100_SEGMENT_ALL_CARRIER+WHERE+Month+%3D1+AND+YEAR%3D2008&varlist=DEPARTURES_SCHEDULED%2CDEPARTURES_PERFORMED%2CPAYLOAD%2CSEATS%2CPASSENGERS%2CFREIGHT%2CMAIL%2CDISTANCE%2CRAMP_TO_RAMP%2CAIR_TIME%2CUNIQUE_CARRIER%2CAIRLINE_ID%2CUNIQUE_CARRIER_NAME%2CUNIQUE_CARRIER_ENTITY%2CREGION%2CCARRIER%2CCARRIER_NAME%2CCARRIER_GROUP%2CCARRIER_GROUP_NEW%2CORIGIN%2CORIGIN_CITY_NAME%2CORIGIN_CITY_NUM%2CORIGIN_STATE_ABR%2CORIGIN_STATE_FIPS%2CORIGIN_STATE_NM%2CORIGIN_COUNTRY%2CORIGIN_COUNTRY_NAME%2CORIGIN_WAC%2CDEST%2CDEST_CITY_NAME%2CDEST_CITY_NUM%2CDEST_STATE_ABR%2CDEST_STATE_FIPS%2CDEST_STATE_NM%2CDEST_COUNTRY%2CDEST_COUNTRY_NAME%2CDEST_WAC%2CAIRCRAFT_GROUP%2CAIRCRAFT_TYPE%2CAIRCRAFT_CONFIG%2CYEAR%2CQUARTER%2CMONTH%2CDISTANCE_GROUP%2CCLASS%2CDATA_SOURCE&grouplist=&suml=&sumRegion=&filter1=title%3D&filter2=title%3D&geo=All%A0&time=January&timename=Month&GEOGRAPHY=All&XYEAR=2008&FREQUENCY=1&AllVars=All&VarName=DEPARTURES_SCHEDULED&VarDesc=DepScheduled&VarType=Num&VarName=DEPARTURES_PERFORMED&VarDesc=DepPerformed&VarType=Num&VarName=PAYLOAD&VarDesc=Payload&VarType=Num&VarName=SEATS&VarDesc=Seats&VarType=Num&VarName=PASSENGERS&VarDesc=Passengers&VarType=Num&VarName=FREIGHT&VarDesc=Freight&VarType=Num&VarName=MAIL&VarDesc=Mail&VarType=Num&VarName=DISTANCE&VarDesc=Distance&VarType=Num&VarName=RAMP_TO_RAMP&VarDesc=RampToRamp&VarType=Num&VarName=AIR_TIME&VarDesc=AirTime&VarType=Num&VarName=UNIQUE_CARRIER&VarDesc=UniqueCarrier&VarType=Char&VarName=AIRLINE_ID&VarDesc=AirlineID&VarType=Num&VarName=UNIQUE_CARRIER_NAME&VarDesc=UniqueCarrierName&VarType=Char&VarName=UNIQUE_CARRIER_ENTITY&VarDesc=UniqCarrierEntity&VarType=Char&VarName=REGION&VarDesc=CarrierRegion&VarType=Char&VarName=CARRIER&VarDesc=Carrier&VarType=Char&VarName=CARRIER_NAME&VarDesc=CarrierName&VarType=Char&VarName=CARRIER_GROUP&VarDesc=CarrierGroup&VarType=Num&VarName=CARRIER_GROUP_NEW&VarDesc=CarrierGroupNew&VarType=Num&VarName=ORIGIN&VarDesc=Origin&VarType=Char&VarName=ORIGIN_CITY_NAME&VarDesc=OriginCityName&VarType=Char&VarName=ORIGIN_CITY_NUM&VarDesc=OriginCityNum&VarType=Num&VarName=ORIGIN_STATE_ABR&VarDesc=OriginState&VarType=Char&VarName=ORIGIN_STATE_FIPS&VarDesc=OriginStateFips&VarType=Char&VarName=ORIGIN_STATE_NM&VarDesc=OriginStateName&VarType=Char&VarName=ORIGIN_COUNTRY&VarDesc=OriginCountry&VarType=Char&VarName=ORIGIN_COUNTRY_NAME&VarDesc=OriginCountryName&VarType=Char&VarName=ORIGIN_WAC&VarDesc=OriginWac&VarType=Num&VarName=DEST&VarDesc=Dest&VarType=Char&VarName=DEST_CITY_NAME&VarDesc=DestCityName&VarType=Char&VarName=DEST_CITY_NUM&VarDesc=DestCityNum&VarType=Num&VarName=DEST_STATE_ABR&VarDesc=DestState&VarType=Char&VarName=DEST_STATE_FIPS&VarDesc=DestStateFips&VarType=Char&VarName=DEST_STATE_NM&VarDesc=DestStateName&VarType=Char&VarName=DEST_COUNTRY&VarDesc=DestCountry&VarType=Char&VarName=DEST_COUNTRY_NAME&VarDesc=DestCountryName&VarType=Char&VarName=DEST_WAC&VarDesc=DestWac&VarType=Num&VarName=AIRCRAFT_GROUP&VarDesc=AircraftGroup&VarType=Num&VarName=AIRCRAFT_TYPE&VarDesc=AircraftType&VarType=Char&VarName=AIRCRAFT_CONFIG&VarDesc=AircraftConfig&VarType=Num&VarName=YEAR&VarDesc=Year&VarType=Num&VarName=QUARTER&VarDesc=Quarter&VarType=Num&VarName=MONTH&VarDesc=Month&VarType=Num&VarName=DISTANCE_GROUP&VarDesc=DistanceGroup&VarType=Num&VarName=CLASS&VarDesc=Class&VarType=Char&VarName=DATA_SOURCE&VarDesc=DataSource&VarType=Char'
95
+ t = RemoteTable.new :url => url, :form_data => form_data, :compression => :zip, :glob => '/*.csv'
96
+ assert_equal 'United States of America', t.rows.first['DEST_COUNTRY_NAME']
97
+ end
98
+ end
99
+
100
+ if ENV['ALL'] == 'true' or ENV['FAST'] == 'true'
101
+ should "connect using HTTPS if available" do
102
+ t = RemoteTable.new(:url => 'https://spreadsheets.google.com/pub?key=t5HM1KbaRngmTUbntg8JwPA')
103
+ assert_equal 'Gulf Coast', t.rows.first['PAD district name']
104
+ assert_equal 'AL', t.rows.first['State']
105
+ assert_equal 'Rocky Mountain', t.rows.last['PAD district name']
106
+ assert_equal 'WY', t.rows.last['State']
107
+ end
108
+
109
+ should "read an HTML table made with frontpage" do
110
+ t = RemoteTable.new :url => "http://www.faa.gov/air_traffic/publications/atpubs/CNT/5-2-E.htm",
111
+ :encoding => 'US-ASCII',
112
+ :row_xpath => '//table/tr[2]/td/table/tr',
113
+ :column_xpath => 'td'
114
+ assert_equal 'E110', t.rows.first['Designator']
115
+ assert_equal 'EMBRAER', t.rows.first['Manufacturer']
116
+ assert_equal 'EZKC', t.rows.last['Designator']
117
+ assert_equal 'EZ King Cobra', t.rows.last['Model']
118
+ end
119
+
82
120
  should "hash rows without paying attention to order" do
83
121
  x = ActiveSupport::OrderedHash.new
84
122
  x[:a] = 1
@@ -116,13 +154,6 @@ class RemoteTableTest < Test::Unit::TestCase
116
154
  assert_equal 'Rocky Mountain', t.rows.last[4]
117
155
  end
118
156
 
119
- should "send form data, follow redirects and use a filename glob" do
120
- url = 'http://www.transtats.bts.gov/DownLoad_Table.asp?Table_ID=293&Has_Group=3&Is_Zipped=0'
121
- form_data = 'UserTableName=T_100_Segment__All_Carriers&DBShortName=Air_Carriers&RawDataTable=T_T100_SEGMENT_ALL_CARRIER&sqlstr=+SELECT+DEPARTURES_SCHEDULED%2CDEPARTURES_PERFORMED%2CPAYLOAD%2CSEATS%2CPASSENGERS%2CFREIGHT%2CMAIL%2CDISTANCE%2CRAMP_TO_RAMP%2CAIR_TIME%2CUNIQUE_CARRIER%2CAIRLINE_ID%2CUNIQUE_CARRIER_NAME%2CUNIQUE_CARRIER_ENTITY%2CREGION%2CCARRIER%2CCARRIER_NAME%2CCARRIER_GROUP%2CCARRIER_GROUP_NEW%2CORIGIN%2CORIGIN_CITY_NAME%2CORIGIN_CITY_NUM%2CORIGIN_STATE_ABR%2CORIGIN_STATE_FIPS%2CORIGIN_STATE_NM%2CORIGIN_COUNTRY%2CORIGIN_COUNTRY_NAME%2CORIGIN_WAC%2CDEST%2CDEST_CITY_NAME%2CDEST_CITY_NUM%2CDEST_STATE_ABR%2CDEST_STATE_FIPS%2CDEST_STATE_NM%2CDEST_COUNTRY%2CDEST_COUNTRY_NAME%2CDEST_WAC%2CAIRCRAFT_GROUP%2CAIRCRAFT_TYPE%2CAIRCRAFT_CONFIG%2CYEAR%2CQUARTER%2CMONTH%2CDISTANCE_GROUP%2CCLASS%2CDATA_SOURCE+FROM++T_T100_SEGMENT_ALL_CARRIER+WHERE+Month+%3D1+AND+YEAR%3D2008&varlist=DEPARTURES_SCHEDULED%2CDEPARTURES_PERFORMED%2CPAYLOAD%2CSEATS%2CPASSENGERS%2CFREIGHT%2CMAIL%2CDISTANCE%2CRAMP_TO_RAMP%2CAIR_TIME%2CUNIQUE_CARRIER%2CAIRLINE_ID%2CUNIQUE_CARRIER_NAME%2CUNIQUE_CARRIER_ENTITY%2CREGION%2CCARRIER%2CCARRIER_NAME%2CCARRIER_GROUP%2CCARRIER_GROUP_NEW%2CORIGIN%2CORIGIN_CITY_NAME%2CORIGIN_CITY_NUM%2CORIGIN_STATE_ABR%2CORIGIN_STATE_FIPS%2CORIGIN_STATE_NM%2CORIGIN_COUNTRY%2CORIGIN_COUNTRY_NAME%2CORIGIN_WAC%2CDEST%2CDEST_CITY_NAME%2CDEST_CITY_NUM%2CDEST_STATE_ABR%2CDEST_STATE_FIPS%2CDEST_STATE_NM%2CDEST_COUNTRY%2CDEST_COUNTRY_NAME%2CDEST_WAC%2CAIRCRAFT_GROUP%2CAIRCRAFT_TYPE%2CAIRCRAFT_CONFIG%2CYEAR%2CQUARTER%2CMONTH%2CDISTANCE_GROUP%2CCLASS%2CDATA_SOURCE&grouplist=&suml=&sumRegion=&filter1=title%3D&filter2=title%3D&geo=All%A0&time=January&timename=Month&GEOGRAPHY=All&XYEAR=2008&FREQUENCY=1&AllVars=All&VarName=DEPARTURES_SCHEDULED&VarDesc=DepScheduled&VarType=Num&VarName=DEPARTURES_PERFORMED&VarDesc=DepPerformed&VarType=Num&VarName=PAYLOAD&VarDesc=Payload&VarType=Num&VarName=SEATS&VarDesc=Seats&VarType=Num&VarName=PASSENGERS&VarDesc=Passengers&VarType=Num&VarName=FREIGHT&VarDesc=Freight&VarType=Num&VarName=MAIL&VarDesc=Mail&VarType=Num&VarName=DISTANCE&VarDesc=Distance&VarType=Num&VarName=RAMP_TO_RAMP&VarDesc=RampToRamp&VarType=Num&VarName=AIR_TIME&VarDesc=AirTime&VarType=Num&VarName=UNIQUE_CARRIER&VarDesc=UniqueCarrier&VarType=Char&VarName=AIRLINE_ID&VarDesc=AirlineID&VarType=Num&VarName=UNIQUE_CARRIER_NAME&VarDesc=UniqueCarrierName&VarType=Char&VarName=UNIQUE_CARRIER_ENTITY&VarDesc=UniqCarrierEntity&VarType=Char&VarName=REGION&VarDesc=CarrierRegion&VarType=Char&VarName=CARRIER&VarDesc=Carrier&VarType=Char&VarName=CARRIER_NAME&VarDesc=CarrierName&VarType=Char&VarName=CARRIER_GROUP&VarDesc=CarrierGroup&VarType=Num&VarName=CARRIER_GROUP_NEW&VarDesc=CarrierGroupNew&VarType=Num&VarName=ORIGIN&VarDesc=Origin&VarType=Char&VarName=ORIGIN_CITY_NAME&VarDesc=OriginCityName&VarType=Char&VarName=ORIGIN_CITY_NUM&VarDesc=OriginCityNum&VarType=Num&VarName=ORIGIN_STATE_ABR&VarDesc=OriginState&VarType=Char&VarName=ORIGIN_STATE_FIPS&VarDesc=OriginStateFips&VarType=Char&VarName=ORIGIN_STATE_NM&VarDesc=OriginStateName&VarType=Char&VarName=ORIGIN_COUNTRY&VarDesc=OriginCountry&VarType=Char&VarName=ORIGIN_COUNTRY_NAME&VarDesc=OriginCountryName&VarType=Char&VarName=ORIGIN_WAC&VarDesc=OriginWac&VarType=Num&VarName=DEST&VarDesc=Dest&VarType=Char&VarName=DEST_CITY_NAME&VarDesc=DestCityName&VarType=Char&VarName=DEST_CITY_NUM&VarDesc=DestCityNum&VarType=Num&VarName=DEST_STATE_ABR&VarDesc=DestState&VarType=Char&VarName=DEST_STATE_FIPS&VarDesc=DestStateFips&VarType=Char&VarName=DEST_STATE_NM&VarDesc=DestStateName&VarType=Char&VarName=DEST_COUNTRY&VarDesc=DestCountry&VarType=Char&VarName=DEST_COUNTRY_NAME&VarDesc=DestCountryName&VarType=Char&VarName=DEST_WAC&VarDesc=DestWac&VarType=Num&VarName=AIRCRAFT_GROUP&VarDesc=AircraftGroup&VarType=Num&VarName=AIRCRAFT_TYPE&VarDesc=AircraftType&VarType=Char&VarName=AIRCRAFT_CONFIG&VarDesc=AircraftConfig&VarType=Num&VarName=YEAR&VarDesc=Year&VarType=Num&VarName=QUARTER&VarDesc=Quarter&VarType=Num&VarName=MONTH&VarDesc=Month&VarType=Num&VarName=DISTANCE_GROUP&VarDesc=DistanceGroup&VarType=Num&VarName=CLASS&VarDesc=Class&VarType=Char&VarName=DATA_SOURCE&VarDesc=DataSource&VarType=Char'
122
- t = RemoteTable.new :url => url, :form_data => form_data, :compression => :zip, :glob => '/*.csv'
123
- assert_equal 'United States of America', t.rows.first['DEST_COUNTRY_NAME']
124
- end
125
-
126
157
  should "take the last of values if the header is duplicated" do
127
158
  t = RemoteTable.new(:url => 'http://spreadsheets.google.com/pub?key=tujrgUOwDSLWb-P4KCt1qBg')
128
159
  assert_equal '2', t.rows.first['dup_header']
@@ -252,30 +283,6 @@ class RemoteTableTest < Test::Unit::TestCase
252
283
  assert_equal 99, t.rows[5]['MAP DATA population (millions) 2002'].to_i
253
284
  end
254
285
 
255
- should "open a CSV inside a zip file" do
256
- t = RemoteTable.new(:url => 'http://www.fueleconomy.gov/FEG/epadata/98guide6.zip', :filename => '98guide6.csv')
257
- assert_equal 'ACURA', t.rows.first['Manufacturer']
258
- assert_equal 'NSX', t.rows.first['carline name']
259
- assert_equal 'TOYOTA', t.rows.last['Manufacturer']
260
- assert_equal 'RAV4 SOFT TOP 4WD', t.rows.last['carline name']
261
- end
262
-
263
- should "open a fixed-width file with an inline schema inside a zip file" do
264
- t = RemoteTable.new(:url => 'http://www.fueleconomy.gov/FEG/epadata/00data.zip',
265
- :filename => 'Gd6-dsc.txt',
266
- :format => :fixed_width,
267
- :crop => 21..26, # inclusive
268
- :cut => '2-',
269
- :select => lambda { |row| /\A[A-Z]/.match row['code'] },
270
- :schema => [[ 'code', 2, { :type => :string } ],
271
- [ 'spacer', 2 ],
272
- [ 'name', 52, { :type => :string } ]])
273
- assert_equal 'regular grade gasoline (octane number of 87)', t.rows.first['name']
274
- assert_equal 'R', t.rows.first['code']
275
- assert_equal 'electricity', t.rows.last['name']
276
- assert_equal 'El', t.rows.last['code']
277
- end
278
-
279
286
  should "open an XLS with a parser" do
280
287
  ma_1990_01 = {"month"=>1, "cost"=>"54.0", "locatable"=>"Massachusetts (State)", "year"=>1990}
281
288
  ga_1990_01 = {"month"=>1, "cost"=>"50.7", "locatable"=>"Georgia (State)", "year"=>1990}
@@ -287,17 +294,17 @@ class RemoteTableTest < Test::Unit::TestCase
287
294
  assert t.rows.include?(ga_1990_01)
288
295
  end
289
296
 
290
- should "provide a row_hash on demand" do
291
- t = RemoteTable.new(:url => 'http://www.fueleconomy.gov/FEG/epadata/00data.zip',
292
- :filename => 'Gd6-dsc.txt',
293
- :format => :fixed_width,
294
- :crop => 21..26, # inclusive
295
- :cut => '2-',
296
- :select => lambda { |row| /\A[A-Z]/.match row['code'] },
297
- :schema => [[ 'code', 2, { :type => :string } ],
298
- [ 'spacer', 2 ],
299
- [ 'name', 52, { :type => :string } ]])
300
- assert_equal 'a8a5d7f17b56772723c657eb62b0f238', t.rows.first['row_hash']
301
- end
297
+ # should "provide a row_hash on demand" do
298
+ # t = RemoteTable.new(:url => 'http://www.fueleconomy.gov/FEG/epadata/00data.zip',
299
+ # :filename => 'Gd6-dsc.txt',
300
+ # :format => :fixed_width,
301
+ # :crop => 21..26, # inclusive
302
+ # :cut => '2-',
303
+ # :select => lambda { |row| /\A[A-Z]/.match row['code'] },
304
+ # :schema => [[ 'code', 2, { :type => :string } ],
305
+ # [ 'spacer', 2 ],
306
+ # [ 'name', 52, { :type => :string } ]])
307
+ # assert_equal 'a8a5d7f17b56772723c657eb62b0f238', t.rows.first['row_hash']
308
+ # end
302
309
  end
303
310
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 16
9
- version: 0.2.16
8
+ - 17
9
+ version: 0.2.17
10
10
  platform: ruby
11
11
  authors:
12
12
  - Seamus Abshere
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-04-27 00:00:00 -04:00
18
+ date: 2010-04-28 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency