fasterer-csv 0.0.8 → 0.0.9

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.
Files changed (2) hide show
  1. data/lib/fasterer_csv.rb +17 -15
  2. metadata +4 -4
@@ -182,28 +182,26 @@ module FastererCSV
182
182
  end
183
183
  end
184
184
 
185
- class NumConverter < Array
185
+ class NumericConversion < Array
186
186
 
187
187
  def initialize
188
- @int = true
189
- @float = true
188
+ @int = @float = true
190
189
  @dot = false
191
190
  end
192
191
 
193
192
  def clear
194
- @int = true
195
- @float = true
193
+ @int = @float = true
196
194
  @dot = false
197
195
  super
198
196
  end
199
197
 
200
198
  def <<(ch)
201
- if (ch > ?9 || ch < ?0) && ch != ?.
202
- @int = false
203
- @float = false
199
+ if ch == ?-
200
+ @float = @int = size == 0
201
+ elsif (ch > ?9 || ch < ?0) && ch != ?.
202
+ @int = @float = false
204
203
  elsif ch == ?. && @dot
205
- @int = false
206
- @float = false
204
+ @int = @float = false
207
205
  elsif ch == ?.
208
206
  @int = false
209
207
  @dot = true
@@ -224,7 +222,7 @@ module FastererCSV
224
222
 
225
223
  end
226
224
 
227
- class NoConverter < Array
225
+ class NoConversion < Array
228
226
 
229
227
  def <<(ch)
230
228
  super(ch.chr)
@@ -234,19 +232,23 @@ module FastererCSV
234
232
 
235
233
  class << self
236
234
 
237
- def headers(file, quot = '~', sep = ',', fail_on_malformed = true, column = NumConverter.new, &block)
235
+ def headers(file, quot = '~', sep = ',', fail_on_malformed = true, column = NumericConversion.new, &block)
238
236
  parse_headers(File.open(file, 'r') {|io| io.gets }, quot, sep, fail_on_malformed, column, &block)
239
237
  end
240
238
 
241
- def read(file, quot = '~', sep = ',', fail_on_malformed = true, column = NumConverter.new, &block)
239
+ def read(file, quot = '~', sep = ',', fail_on_malformed = true, column = NumericConversion.new, &block)
240
+ parse(File.open(file, 'r') { |io| io.sysread(File.size(file)) }, quot, sep, fail_on_malformed, column, &block)
241
+ end
242
+
243
+ def read_plain(file, quot = '~', sep = ',', fail_on_malformed = true, column = NoConversion.new, &block)
242
244
  parse(File.open(file, 'r') { |io| io.sysread(File.size(file)) }, quot, sep, fail_on_malformed, column, &block)
243
245
  end
244
246
 
245
- def parse_headers(data, quot = '~', sep = ',', fail_on_malformed = true, column = NumConverter.new, &block)
247
+ def parse_headers(data, quot = '~', sep = ',', fail_on_malformed = true, column = NumericConversion.new, &block)
246
248
  parse(data, quot, sep, fail_on_malformed, column, &block).headers
247
249
  end
248
250
 
249
- def parse(data, quot = '~', sep = ',', fail_on_malformed = true, column = NumConverter.new)
251
+ def parse(data, quot = '~', sep = ',', fail_on_malformed = true, column = NumericConversion.new)
250
252
  q, s, row, inquot, clean, maybe, table, field, endline = quot[0], sep[0], [], false, true, false, nil, true, false
251
253
 
252
254
  data.each_byte do |c|
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: 15
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 8
10
- version: 0.0.8
9
+ - 9
10
+ version: 0.0.9
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-15 00:00:00 -07:00
18
+ date: 2010-06-16 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies: []
21
21