fasterer-csv 1.2.0 → 1.4.0

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