csv 3.2.8 → 3.2.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/NEWS.md +18 -0
- data/README.md +2 -2
- data/lib/csv/parser.rb +16 -10
- data/lib/csv/version.rb +1 -1
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7dabc413b85090aa7c9c93ca318de9adb1c0c2d94273f4e8d23d73d2882680a
|
4
|
+
data.tar.gz: 8e8484c342de0947a59af726ab20d7a88a2ae766a9e62139edb6c5650d144d0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28edfb536bed667f78a618a3d13f5b305d1749879efae7256aaa8a0fa84694f2df7cc285851976b8b2f45ce9a7ae5741f9bd4277c3ea32c9a27fd2379a0f1be2
|
7
|
+
data.tar.gz: 7fe44532cde1e9022da25f798b696ad51b7c81bc3bd64cfd97610d13f073f141886bfdd03e9bb710bab2d3e7fda71a47cfea0ea7da8d3f6c06b38edfc295e364
|
data/NEWS.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 3.2.9 - 2024-03-22
|
4
|
+
|
5
|
+
### Fixes
|
6
|
+
|
7
|
+
* Fixed a parse bug that wrong result may be happen when:
|
8
|
+
|
9
|
+
* `:skip_lines` is used
|
10
|
+
* `:row_separator` is `"\r\n"`
|
11
|
+
* There is a line that includes `\n` as a column value
|
12
|
+
|
13
|
+
Reported by Ryo Tsukamoto.
|
14
|
+
|
15
|
+
GH-296
|
16
|
+
|
17
|
+
### Thanks
|
18
|
+
|
19
|
+
* Ryo Tsukamoto
|
20
|
+
|
3
21
|
## 3.2.8 - 2023-11-08
|
4
22
|
|
5
23
|
### Improvements
|
data/README.md
CHANGED
@@ -30,8 +30,8 @@ end
|
|
30
30
|
|
31
31
|
## Documentation
|
32
32
|
|
33
|
-
- [API](https://ruby
|
34
|
-
- [Recipes](https://ruby
|
33
|
+
- [API](https://ruby.github.io/csv/): all classes, methods, and constants.
|
34
|
+
- [Recipes](https://ruby.github.io/csv/doc/csv/recipes/recipes_rdoc.html): specific code for specific tasks.
|
35
35
|
|
36
36
|
## Development
|
37
37
|
|
data/lib/csv/parser.rb
CHANGED
@@ -220,6 +220,15 @@ class CSV
|
|
220
220
|
end
|
221
221
|
# trace(__method__, :repos, start, buffer)
|
222
222
|
@scanner.pos = start
|
223
|
+
last_scanner, last_start, last_buffer = @keeps.last
|
224
|
+
# Drop the last buffer when the last buffer is the same data
|
225
|
+
# in the last keep. If we keep it, we have duplicated data
|
226
|
+
# by the next keep_back.
|
227
|
+
if last_scanner == @scanner and
|
228
|
+
last_buffer and
|
229
|
+
last_buffer == last_scanner.string.byteslice(last_start, start)
|
230
|
+
@keeps.last[2] = nil
|
231
|
+
end
|
223
232
|
end
|
224
233
|
read_chunk if @scanner.eos?
|
225
234
|
end
|
@@ -892,18 +901,15 @@ class CSV
|
|
892
901
|
def skip_needless_lines
|
893
902
|
return unless @skip_lines
|
894
903
|
|
895
|
-
|
896
|
-
|
897
|
-
line = @scanner.scan_all(@not_line_end) || "".encode(@encoding)
|
904
|
+
@scanner.keep_start
|
905
|
+
@scanner.each_line(@row_separator) do |line|
|
898
906
|
line << @row_separator if parse_row_end
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
@scanner.keep_back
|
904
|
-
return
|
905
|
-
end
|
907
|
+
break unless skip_line?(line)
|
908
|
+
@lineno += 1
|
909
|
+
@scanner.keep_drop
|
910
|
+
@scanner.keep_start
|
906
911
|
end
|
912
|
+
@scanner.keep_back
|
907
913
|
end
|
908
914
|
|
909
915
|
def skip_line?(line)
|
data/lib/csv/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: csv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Edward Gray II
|
8
8
|
- Kouhei Sutou
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2024-03-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
@@ -128,7 +127,6 @@ licenses:
|
|
128
127
|
- Ruby
|
129
128
|
- BSD-2-Clause
|
130
129
|
metadata: {}
|
131
|
-
post_install_message:
|
132
130
|
rdoc_options:
|
133
131
|
- "--main"
|
134
132
|
- README.md
|
@@ -145,8 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
143
|
- !ruby/object:Gem::Version
|
146
144
|
version: '0'
|
147
145
|
requirements: []
|
148
|
-
rubygems_version: 3.
|
149
|
-
signing_key:
|
146
|
+
rubygems_version: 3.6.0.dev
|
150
147
|
specification_version: 4
|
151
148
|
summary: CSV Reading and Writing
|
152
149
|
test_files: []
|