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.
Files changed (2) hide show
  1. data/lib/fasterer_csv.rb +10 -10
  2. 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: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 5
10
- version: 0.0.5
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-01 00:00:00 -07:00
18
+ date: 2010-06-07 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies: []
21
21