fasterer-csv 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/fasterer_csv.rb +10 -10
- metadata +4 -4
data/lib/fasterer_csv.rb
CHANGED
@@ -176,19 +176,19 @@ module FastererCSV
|
|
176
176
|
|
177
177
|
class << self
|
178
178
|
|
179
|
-
def headers(file, quot = '~', sep = ',', &block)
|
180
|
-
parse_headers(File.open(file, 'r') {|io| io.gets }, quot, sep, &block)
|
179
|
+
def headers(file, quot = '~', sep = ',', fail_on_malformed = true, &block)
|
180
|
+
parse_headers(File.open(file, 'r') {|io| io.gets }, quot, sep, fail_on_malformed, &block)
|
181
181
|
end
|
182
182
|
|
183
|
-
def read(file, quot = '~', sep = ',', &block)
|
184
|
-
parse(File.open(file, 'r') { |io| io.sysread(File.size(file)) }, quot, sep, &block)
|
183
|
+
def read(file, quot = '~', sep = ',', fail_on_malformed = true, &block)
|
184
|
+
parse(File.open(file, 'r') { |io| io.sysread(File.size(file)) }, quot, sep, fail_on_malformed, &block)
|
185
185
|
end
|
186
186
|
|
187
|
-
def parse_headers(data, quot = '~', sep = ',', &block)
|
188
|
-
parse(data, quot, sep, &block).headers
|
187
|
+
def parse_headers(data, quot = '~', sep = ',', fail_on_malformed = true, &block)
|
188
|
+
parse(data, quot, sep, fail_on_malformed, &block).headers
|
189
189
|
end
|
190
190
|
|
191
|
-
def parse(data, quot = '~', sep = ',')
|
191
|
+
def parse(data, quot = '~', sep = ',', fail_on_malformed = true)
|
192
192
|
q, s, row, column, inquot, clean, maybe, table, field, endline = quot[0], sep[0], [], [], false, true, false, nil, true, false
|
193
193
|
|
194
194
|
data.each_byte do |c|
|
@@ -201,7 +201,7 @@ module FastererCSV
|
|
201
201
|
elsif maybe && c == ?\n && table.nil?
|
202
202
|
row << column.join unless (column.empty? && endline)
|
203
203
|
column.clear
|
204
|
-
table = Table.new(row) unless row.empty?
|
204
|
+
table = Table.new(row, fail_on_malformed) unless row.empty?
|
205
205
|
row, clean, inquot, maybe, field, endline = [], true, false, false, false, true
|
206
206
|
elsif maybe && c == ?\n
|
207
207
|
row << column.join unless (column.empty? && endline)
|
@@ -231,7 +231,7 @@ module FastererCSV
|
|
231
231
|
end
|
232
232
|
|
233
233
|
column.clear
|
234
|
-
table = Table.new(row) unless row.empty?
|
234
|
+
table = Table.new(row, fail_on_malformed) unless row.empty?
|
235
235
|
row, clean, inquot, field, endline = [], true, false, false, true
|
236
236
|
elsif c == ?\n
|
237
237
|
|
@@ -259,7 +259,7 @@ module FastererCSV
|
|
259
259
|
if table
|
260
260
|
table << row unless row.empty?
|
261
261
|
else
|
262
|
-
table = Table.new(row) unless row.empty?
|
262
|
+
table = Table.new(row, fail_on_malformed) unless row.empty?
|
263
263
|
end
|
264
264
|
elsif field
|
265
265
|
row << (column.empty? ? nil : column.join)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fasterer-csv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Mason
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-06-
|
18
|
+
date: 2010-06-07 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|