remote_table 3.3.2 → 3.3.3
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.
- checksums.yaml +4 -4
- data/CHANGELOG +11 -0
- data/lib/remote_table.rb +11 -0
- data/lib/remote_table/delimited.rb +5 -2
- data/lib/remote_table/processed_by_roo.rb +4 -1
- data/lib/remote_table/version.rb +1 -1
- data/lib/remote_table/xls.rb +1 -1
- data/remote_table.gemspec +1 -0
- data/test/helper.rb +1 -0
- data/test/test_remote.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c25d96a8296ef90b00e61d671d709ac0d8f6fcbe
|
4
|
+
data.tar.gz: f2c0d575d566db733dabd3a32f4ae5db17ee7310
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 279b9c85ad97831e3e24cd0d5d8f919a58b711391afa0304f0072f6bd0c515263571ec28bc90581b1b09552323aab6ff9c38272c43440055eb12d7b1250c7daa
|
7
|
+
data.tar.gz: 1b2c8c63a2f011af898e4652a8548ad7e33f793bea8d3342c1947b3db09613e0f9ef1e6144bb5b886adbc8f3eac1d0afcce869d5aaca0fccead81e99cec3daf5
|
data/CHANGELOG
CHANGED
data/lib/remote_table.rb
CHANGED
@@ -154,6 +154,7 @@ class RemoteTable
|
|
154
154
|
:keep_blank_rows => false,
|
155
155
|
:skip => 0,
|
156
156
|
:encoding => 'UTF-8',
|
157
|
+
:stop_after_untitled_headers => false,
|
157
158
|
}
|
158
159
|
OLD_SETTING_NAMES = {
|
159
160
|
:pre_select => [:select],
|
@@ -353,6 +354,15 @@ class RemoteTable
|
|
353
354
|
# @return [String]
|
354
355
|
attr_reader :root_node
|
355
356
|
|
357
|
+
# When to trim untitled headers. Set this to 100 to prevent more than 100 untitled headers being created; the rest will be silently discarded.
|
358
|
+
#
|
359
|
+
# Note: This is effectively a right trim... the counting starts from the left.
|
360
|
+
#
|
361
|
+
# Default: false, don't try
|
362
|
+
#
|
363
|
+
# @return [Integer]
|
364
|
+
attr_reader :stop_after_untitled_headers
|
365
|
+
|
356
366
|
# @private
|
357
367
|
class NullParser
|
358
368
|
def call(row)
|
@@ -444,6 +454,7 @@ class RemoteTable
|
|
444
454
|
@errata = grab settings, :errata
|
445
455
|
@root_node = grab settings, :root_node
|
446
456
|
@parser = grab settings, :parser
|
457
|
+
@stop_after_untitled_headers = grab settings, :stop_after_untitled_headers
|
447
458
|
|
448
459
|
@other_options = settings
|
449
460
|
|
@@ -46,6 +46,7 @@ class RemoteTable
|
|
46
46
|
# represent the row as a hash
|
47
47
|
hash = ::ActiveSupport::OrderedHash.new
|
48
48
|
row.each do |k, v|
|
49
|
+
next if k.nil?
|
49
50
|
v = RemoteTable.normalize_whitespace v
|
50
51
|
if not some_value_present and not keep_blank_rows and v.present?
|
51
52
|
some_value_present = true
|
@@ -95,9 +96,11 @@ class RemoteTable
|
|
95
96
|
end while line.length == 0
|
96
97
|
proto_headers = Engine.parse_line(line, csv_options)
|
97
98
|
if proto_headers
|
98
|
-
proto_headers.
|
99
|
+
proto_headers.inject([]) do |memo, v|
|
100
|
+
break memo if stop_after_untitled_headers and i > stop_after_untitled_headers
|
99
101
|
header = RemoteTable.normalize_whitespace v
|
100
|
-
header.present? ? header : "untitled_#{i+=1}"
|
102
|
+
memo << (header.present? ? header : "untitled_#{i+=1}")
|
103
|
+
memo
|
101
104
|
end
|
102
105
|
else
|
103
106
|
raise "No headers found in first line: #{line.inspect}"
|
@@ -50,7 +50,7 @@ class RemoteTable
|
|
50
50
|
# create a hash to represent this row
|
51
51
|
current_headers = ::ActiveSupport::OrderedHash.new
|
52
52
|
i = 0
|
53
|
-
if headers == :first_row
|
53
|
+
if headers == :first_row or headers == true
|
54
54
|
(1..spreadsheet.last_column).each do |x|
|
55
55
|
v = spreadsheet.cell(first_row, x)
|
56
56
|
if v.blank?
|
@@ -62,6 +62,9 @@ class RemoteTable
|
|
62
62
|
# 'foobar' is found at column 6
|
63
63
|
current_headers[v] = x
|
64
64
|
else
|
65
|
+
if stop_after_untitled_headers and i > stop_after_untitled_headers
|
66
|
+
break
|
67
|
+
end
|
65
68
|
current_headers["untitled_#{i+=1}"] = x
|
66
69
|
end
|
67
70
|
end
|
data/lib/remote_table/version.rb
CHANGED
data/lib/remote_table/xls.rb
CHANGED
data/remote_table.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.add_runtime_dependency 'fastercsv', '>=1.5.0'
|
27
27
|
s.add_runtime_dependency 'hash_digest', '>=1.1.3'
|
28
28
|
|
29
|
+
s.add_development_dependency 'roo-xls'
|
29
30
|
s.add_development_dependency 'errata', '>=0.2.0'
|
30
31
|
s.add_development_dependency 'minitest'
|
31
32
|
s.add_development_dependency 'rake'
|
data/test/helper.rb
CHANGED
data/test/test_remote.rb
CHANGED
@@ -6,7 +6,7 @@ describe RemoteTable do
|
|
6
6
|
describe 'used on remote files' do
|
7
7
|
it "add a row hash to every row" do
|
8
8
|
t = RemoteTable.new(:url => 'http://www.customerreferenceprogram.org/uploads/CRP_RFP_template.xlsx')
|
9
|
-
t[5].row_hash.must_equal "
|
9
|
+
t[5].row_hash.must_equal "59a3cf905334493bbdda971298f1b2a2f58e05cb"
|
10
10
|
end
|
11
11
|
|
12
12
|
it "open a google doc" do
|
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: 3.3.
|
4
|
+
version: 3.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seamus Abshere
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-02-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -109,6 +109,20 @@ dependencies:
|
|
109
109
|
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: 1.1.3
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: roo-xls
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
112
126
|
- !ruby/object:Gem::Dependency
|
113
127
|
name: errata
|
114
128
|
requirement: !ruby/object:Gem::Requirement
|