remote_table 3.3.2 → 3.3.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|