remote_table 0.2.29 → 0.2.30
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 +1 -1
- data/lib/remote_table/file/roo_spreadsheet.rb +19 -6
- data/remote_table.gemspec +1 -1
- data/test/remote_table_test.rb +10 -0
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.30
|
@@ -1,18 +1,31 @@
|
|
1
1
|
class RemoteTable
|
2
2
|
module RooSpreadsheet
|
3
3
|
def each_row(&block)
|
4
|
-
headers = Hash.new
|
5
4
|
oo = roo_klass.new(path, nil, :ignore)
|
6
5
|
oo.default_sheet = sheet.is_a?(Numeric) ? oo.sheets[sheet] : sheet
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
column_references = Hash.new
|
7
|
+
if headers == false
|
8
|
+
# zero-based numeric keys
|
9
|
+
for col in (1..oo.last_column)
|
10
|
+
column_references[col] = col - 1
|
11
|
+
end
|
12
|
+
elsif headers.is_a? Array
|
13
|
+
# names
|
14
|
+
for col in (1..oo.last_column)
|
15
|
+
column_references[col] = headers[col - 1]
|
16
|
+
end
|
17
|
+
else
|
18
|
+
# read headers from the file itself
|
19
|
+
for col in (1..oo.last_column)
|
20
|
+
column_references[col] = oo.cell(header_row, col)
|
21
|
+
column_references[col] = oo.cell(header_row - 1, col) if column_references[col].blank? # look up
|
22
|
+
end
|
10
23
|
end
|
11
24
|
first_data_row.upto(oo.last_row) do |raw_row|
|
12
25
|
ordered_hash = ActiveSupport::OrderedHash.new
|
13
26
|
for col in (1..oo.last_column)
|
14
|
-
next if
|
15
|
-
ordered_hash[
|
27
|
+
next if column_references[col].blank?
|
28
|
+
ordered_hash[column_references[col]] = oo.cell(raw_row, col).to_s.gsub(/<[^>]+>/, '').strip
|
16
29
|
end
|
17
30
|
yield ordered_hash if keep_blank_rows or ordered_hash.any? { |k, v| v.present? }
|
18
31
|
end
|
data/remote_table.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{remote_table}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.30"
|
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"]
|
data/test/remote_table_test.rb
CHANGED
@@ -130,6 +130,16 @@ class RemoteTableTest < Test::Unit::TestCase
|
|
130
130
|
end
|
131
131
|
|
132
132
|
if ENV['ALL'] == 'true' or ENV['FAST'] == 'true'
|
133
|
+
should "open an XLSX like an array (numbered columns)" do
|
134
|
+
t = RemoteTable.new(:url => 'www.customerreferenceprogram.org/uploads/CRP_RFP_template.xlsx', :headers => false)
|
135
|
+
assert_equal "Secure encryption of all data", t.rows[5][0]
|
136
|
+
end
|
137
|
+
|
138
|
+
should "open an XLSX with custom headers" do
|
139
|
+
t = RemoteTable.new(:url => 'www.customerreferenceprogram.org/uploads/CRP_RFP_template.xlsx', :headers => %w{foo bar baz})
|
140
|
+
assert_equal "Secure encryption of all data", t.rows[5]['foo']
|
141
|
+
end
|
142
|
+
|
133
143
|
should "open an XLSX" do
|
134
144
|
t = RemoteTable.new(:url => 'www.customerreferenceprogram.org/uploads/CRP_RFP_template.xlsx')
|
135
145
|
assert_equal "Secure encryption of all data", t.rows[5]["Requirements"]
|
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:
|
4
|
+
hash: 43
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 30
|
10
|
+
version: 0.2.30
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Seamus Abshere
|