remote_table 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -168,9 +168,14 @@ class RemoteTable
168
168
  t.options['reject']
169
169
  end
170
170
 
171
- # An Errata object (see the Errata gem at http://github.com/seamusabshere/errata) to be used on every row.
171
+ # A hash of options to create a new Errata instance (see the Errata gem at http://github.com/seamusabshere/errata) to be used on every row.
172
172
  def errata
173
- t.options['errata']
173
+ return unless t.options.has_key? 'errata'
174
+ @errata ||= if t.options['errata'].is_a? ::Hash
175
+ ::Errata.new t.options['errata']
176
+ else
177
+ t.options['errata']
178
+ end
174
179
  end
175
180
 
176
181
  # Get the format in the form of RemoteTable::Format::Excel, etc.
@@ -201,6 +206,9 @@ class RemoteTable
201
206
  Format::FixedWidth
202
207
  when /htm/
203
208
  Format::HTML
209
+ when /txt/, /dat/
210
+ # legacy
211
+ Format::Delimited
204
212
  else
205
213
  raise Format::Unknown, clue
206
214
  end
@@ -1,3 +1,3 @@
1
1
  class RemoteTable
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
data/test/test_errata.rb CHANGED
@@ -31,16 +31,29 @@ class AircraftGuru
31
31
  end
32
32
 
33
33
  class TestErrata < Test::Unit::TestCase
34
- should "be able to apply errata files" do
34
+ should "be able to apply Errata instances directly" do
35
35
  t = RemoteTable.new :url => "http://www.faa.gov/air_traffic/publications/atpubs/CNT/5-2-G.htm",
36
36
  :encoding => 'windows-1252',
37
37
  :row_xpath => '//table/tr[2]/td/table/tr',
38
38
  :column_xpath => 'td',
39
- :errata => Errata.new(:table => RemoteTable.new(:url => 'http://spreadsheets.google.com/pub?key=tObVAGyqOkCBtGid0tJUZrw'),
39
+ :errata => Errata.new(:url => 'http://spreadsheets.google.com/pub?key=tObVAGyqOkCBtGid0tJUZrw',
40
40
  :responder => AircraftGuru.new)
41
41
  g1 = t.rows.detect { |row| row['Model'] =~ /Gulfstream I/ }
42
42
  assert g1
43
43
  assert_equal 'GULFSTREAM AEROSPACE', g1['Manufacturer']
44
44
  assert_equal 'Gulfstream I', g1['Model']
45
45
  end
46
+
47
+ should "be able to apply erratas given a hash of options" do
48
+ t = RemoteTable.new :url => "http://www.faa.gov/air_traffic/publications/atpubs/CNT/5-2-G.htm",
49
+ :encoding => 'windows-1252',
50
+ :row_xpath => '//table/tr[2]/td/table/tr',
51
+ :column_xpath => 'td',
52
+ :errata => { :url => 'http://spreadsheets.google.com/pub?key=tObVAGyqOkCBtGid0tJUZrw',
53
+ :responder => AircraftGuru.new }
54
+ g1 = t.rows.detect { |row| row['Model'] =~ /Gulfstream I/ }
55
+ assert g1
56
+ assert_equal 'GULFSTREAM AEROSPACE', g1['Manufacturer']
57
+ assert_equal 'Gulfstream I', g1['Model']
58
+ end
46
59
  end
@@ -10,4 +10,18 @@ class TestRemoteTable < Test::Unit::TestCase
10
10
  t = RemoteTable.new(:url => 'www.customerreferenceprogram.org/uploads/CRP_RFP_template.xlsx')
11
11
  assert_equal "59d68cfc1cd6b32f5b333d6f0e4bea6d", t[5]['row_hash']
12
12
  end
13
+
14
+ should "open a google doc" do
15
+ t = RemoteTable.new 'http://spreadsheets.google.com/pub?key=tObVAGyqOkCBtGid0tJUZrw'
16
+ assert_equal 'Seamus Abshere', t[0]['name']
17
+ end
18
+
19
+ should "return an ordered hash" do
20
+ t = RemoteTable.new 'http://spreadsheets.google.com/pub?key=tObVAGyqOkCBtGid0tJUZrw'
21
+ if RUBY_VERSION >= '1.9'
22
+ assert_equal ::Hash, t[0].class
23
+ else
24
+ assert_equal ::ActiveSupport::OrderedHash, t[0].class
25
+ end
26
+ end
13
27
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remote_table
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 1
10
- version: 1.0.1
9
+ - 2
10
+ version: 1.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Seamus Abshere