fastercsv 1.5.3 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/CHANGELOG +7 -0
  2. data/lib/faster_csv.rb +1819 -1800
  3. data/test/tc_csv_parsing.rb +16 -0
  4. metadata +9 -4
@@ -109,6 +109,22 @@ class TestCSVParsing < Test::Unit::TestCase
109
109
  assert_equal(Array.new, FasterCSV.parse_line("\n1,2,3\n"))
110
110
  end
111
111
 
112
+ def test_rob_edge_cases
113
+ [ [%Q{"a\nb"}, ["a\nb"]],
114
+ [%Q{"\n\n\n"}, ["\n\n\n"]],
115
+ [%Q{a,"b\n\nc"}, ['a', "b\n\nc"]],
116
+ [%Q{,"\r\n"}, [nil,"\r\n"]],
117
+ [%Q{,"\r\n."}, [nil,"\r\n."]],
118
+ [%Q{"a\na","one newline"}, ["a\na", 'one newline']],
119
+ [%Q{"a\n\na","two newlines"}, ["a\n\na", 'two newlines']],
120
+ [%Q{"a\r\na","one CRLF"}, ["a\r\na", 'one CRLF']],
121
+ [%Q{"a\r\n\r\na","two CRLFs"}, ["a\r\n\r\na", 'two CRLFs']],
122
+ [%Q{with blank,"start\n\nfinish"\n}, ['with blank', "start\n\nfinish"]],
123
+ ].each do |edge_case|
124
+ assert_equal(edge_case.last, FasterCSV.parse_line(edge_case.first))
125
+ end
126
+ end
127
+
112
128
  def test_non_regex_edge_cases
113
129
  # An early version of the non-regex parser fails this test
114
130
  [["foo,\"foo,bar,baz,foo\",\"foo\"", ["foo", "foo,bar,baz,foo", "foo"]]].each do |edge_case|
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastercsv
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 11
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
8
  - 5
8
- - 3
9
- version: 1.5.3
9
+ - 4
10
+ version: 1.5.4
10
11
  platform: ruby
11
12
  authors:
12
13
  - James Edward Gray II
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-03-16 00:00:00 -05:00
18
+ date: 2011-01-07 00:00:00 -06:00
18
19
  default_executable:
19
20
  dependencies: []
20
21
 
@@ -82,23 +83,27 @@ rdoc_options:
82
83
  require_paths:
83
84
  - lib
84
85
  required_ruby_version: !ruby/object:Gem::Requirement
86
+ none: false
85
87
  requirements:
86
88
  - - ">="
87
89
  - !ruby/object:Gem::Version
90
+ hash: 3
88
91
  segments:
89
92
  - 0
90
93
  version: "0"
91
94
  required_rubygems_version: !ruby/object:Gem::Requirement
95
+ none: false
92
96
  requirements:
93
97
  - - ">="
94
98
  - !ruby/object:Gem::Version
99
+ hash: 3
95
100
  segments:
96
101
  - 0
97
102
  version: "0"
98
103
  requirements: []
99
104
 
100
105
  rubyforge_project: fastercsv
101
- rubygems_version: 1.3.6
106
+ rubygems_version: 1.3.7
102
107
  signing_key:
103
108
  specification_version: 3
104
109
  summary: FasterCSV is CSV, but faster, smaller, and cleaner.