fasterer-csv 1.2.0 → 1.4.0

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0
1
+ 1.4.0
data/fasterer-csv.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fasterer-csv}
8
- s.version = "1.2.0"
8
+ s.version = "1.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mason"]
12
- s.date = %q{2010-06-17}
12
+ s.date = %q{2010-06-21}
13
13
  s.description = %q{CSV parsing awesomeness}
14
14
  s.email = %q{mason@chipped.net}
15
15
  s.extra_rdoc_files = [
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
40
40
  "pkg/fasterer-csv-0.0.9.gem",
41
41
  "pkg/fasterer-csv-1.0.0.gem",
42
42
  "pkg/fasterer-csv-1.1.0.gem",
43
+ "pkg/fasterer-csv-1.2.0.gem",
43
44
  "spec/fasterer_csv_spec.rb",
44
45
  "spec/spec.opts",
45
46
  "spec/spec_helper.rb"
data/lib/fasterer_csv.rb CHANGED
@@ -270,14 +270,14 @@ module FastererCSV
270
270
  end
271
271
 
272
272
  class IOWriter
273
- def initialize(file, quot = '~', sep = ',') @first = true; @io = file; @quot = quot; @sep = sep end
273
+ def initialize(file, quot = '~', sep = ',', quotenum = false) @first = true; @io = file; @quot = quot; @sep = sep; @quotenum = quotenum end
274
274
  def <<(row)
275
275
  raise "can only write arrays! #{row.class} #{row.inspect}" unless row.is_a? Array
276
276
  if @first && row.is_a?(Row)
277
277
  @first = false
278
278
  self.<<(row.headers)
279
279
  end
280
- @io.syswrite FastererCSV::quot_row(row, @quot, @sep)
280
+ @io.syswrite FastererCSV::quot_row(row, @quot, @sep, @quotenum)
281
281
  row
282
282
  end
283
283
  end
@@ -372,7 +372,7 @@ module FastererCSV
372
372
  table
373
373
  end
374
374
 
375
- def quot_row(row, q = '~', s = ',')
375
+ def quot_row(row, q = '~', s = ',', numquot = false)
376
376
  num_quot = /(?:[#{q}#{s}\n]|^\d+$)/
377
377
  need_quot = /[#{q}#{s}\n]/
378
378
  row.map do |val|
@@ -381,7 +381,7 @@ module FastererCSV
381
381
  elsif val.is_a? Numeric
382
382
  val.to_s
383
383
  else
384
- quot = val.is_a?(Symbol) ? need_quot : num_quot
384
+ quot = (val.is_a?(Symbol) || !numquot) ? need_quot : num_quot
385
385
  val = String(val)
386
386
  if val.length == 0
387
387
  q * 2
@@ -398,13 +398,13 @@ module FastererCSV
398
398
  builder.string
399
399
  end
400
400
 
401
- def write(out, quot = '~', sep = ',', &block)
401
+ def write(out, quot = '~', sep = ',', quotenum = false, &block)
402
402
  if out.class == String
403
403
  File.open(out, "w") do |io|
404
- write(io, quot, sep, &block)
404
+ write(io, quot, sep, quotenum, &block)
405
405
  end
406
406
  else
407
- yield(IOWriter.new(out, quot, sep))
407
+ yield(IOWriter.new(out, quot, sep, quotenum))
408
408
  end
409
409
  end
410
410
  end
Binary file
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: 31
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 2
8
+ - 4
9
9
  - 0
10
- version: 1.2.0
10
+ version: 1.4.0
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-17 00:00:00 -07:00
18
+ date: 2010-06-21 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -52,6 +52,7 @@ files:
52
52
  - pkg/fasterer-csv-0.0.9.gem
53
53
  - pkg/fasterer-csv-1.0.0.gem
54
54
  - pkg/fasterer-csv-1.1.0.gem
55
+ - pkg/fasterer-csv-1.2.0.gem
55
56
  - spec/fasterer_csv_spec.rb
56
57
  - spec/spec.opts
57
58
  - spec/spec_helper.rb