rbcsv 0.1.6 → 0.1.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 502b63a87094fd5315834ce7772b29e6debaf6b18b48a88f60eae202ffd008ec
4
- data.tar.gz: d56609a5352b69b365e87cc0bc6106a579d34927e919db0dfa8bc22228d14620
3
+ metadata.gz: 6081f5083fa0f62ff08812aed7b6ff8fe47fbbc2a2170fc3d5ff3a4c6ef21661
4
+ data.tar.gz: a73748f6fefbf4a8fced9bf15f1f5db5ae3b4ef4fc11512e0f30a4ceb09b2e3f
5
5
  SHA512:
6
- metadata.gz: b1e2e790b9a546cad7dfa343bb32feacc590f369f4f16fa736ea63147ec1781a6107a3bf1120bcd360af3fa907459409bd3b92b0d55b7af39cd027e81aaee49d
7
- data.tar.gz: 2ffea00a8972c26615e7bc58da5f77c6b2d7b6c1de15f31d0b064b0a2e1b3994b933c2b23297a219e2cf9c78a95ecde7694d67aa4369b4785dd091c9a64b8ba8
6
+ metadata.gz: f2bc15f8586443f6be96a47525688312938141f5d509fe1365b0c83c6e4776c2624678e4e2bdabb926b319875218d03e6e519e317acb42ab7749861197e72a8e
7
+ data.tar.gz: c0e37e6c24bae12583a538f79b9a0bba74d9b7ce06b16198c9b8764de1a2dd87cbcd1ca0681f580b65220d2a9c532c98fe7cc6fe04ad72cd6fb5a403ead1024a
@@ -0,0 +1,8 @@
1
+ {
2
+ "cargo": {
3
+ "allTargets": true
4
+ },
5
+ "checkOnSave": {
6
+ "allTargets": true
7
+ }
8
+ }
data/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.1.8] - 2025-01-28
4
+
5
+ ### Added
6
+ - CSV file writing functionality with `RbCsv.write(file_path, data)` method
7
+ - Comprehensive data validation (empty data check, field count consistency)
8
+ - Enhanced error handling for write operations (permission errors, invalid data)
9
+ - Full test coverage for write functionality with executable test script
10
+
11
+ ### Fixed
12
+ - **CRITICAL**: Fixed special character handling in CSV parsing
13
+ - Removed problematic `escape_sanitize` function that interfered with standard CSV escaping
14
+ - Now properly preserves backslashes, newlines, tabs, and other special characters
15
+ - Ensures perfect round-trip fidelity for write/read operations
16
+ - Updated RSpec tests to reflect correct CSV parsing behavior
17
+
18
+ ## [0.1.7] - 2025-01-28
19
+
20
+ ### Changed
21
+ - **BREAKING**: API redesigned to use function-based approach with `!` suffix for trim functionality
22
+ - `parse(csv)` and `parse!(csv)` for regular and trimmed parsing
23
+ - `read(file)` and `read!(file)` for regular and trimmed file reading
24
+ - Removed option-based API in favor of cleaner function separation
25
+ - Major internal refactoring: split code into modular structure
26
+ - `parser.rs`: Core CSV parsing logic
27
+ - `ruby_api.rs`: Ruby bindings and API functions
28
+ - `error.rs`: Error handling and custom error types
29
+ - Updated to follow Ruby naming conventions with `!` suffix for modified behavior
30
+
31
+ ### Added
32
+ - Comprehensive error handling with detailed error messages
33
+ - Support for various CSV edge cases (empty fields, special characters)
34
+ - Extensive test coverage for all parsing scenarios
35
+ - Improved documentation with DEVELOPMENT.md enhancements
36
+
37
+ ### Fixed
38
+ - Memory efficiency improvements in CSV parsing
39
+ - Better handling of UTF-8 encoded data
40
+ - Consistent error reporting across all functions
41
+
42
+ ### Development
43
+ - Added detailed project structure documentation
44
+ - Enhanced build and test procedures in DEVELOPMENT.md
45
+ - Improved release process documentation
46
+
3
47
  ## [0.1.6] - 2025-09-27
4
48
 
5
49
  ### Changed
data/Cargo.lock CHANGED
@@ -90,12 +90,48 @@ version = "1.15.0"
90
90
  source = "registry+https://github.com/rust-lang/crates.io-index"
91
91
  checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
92
92
 
93
+ [[package]]
94
+ name = "env_logger"
95
+ version = "0.10.2"
96
+ source = "registry+https://github.com/rust-lang/crates.io-index"
97
+ checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
98
+ dependencies = [
99
+ "humantime",
100
+ "is-terminal",
101
+ "log",
102
+ "regex",
103
+ "termcolor",
104
+ ]
105
+
93
106
  [[package]]
94
107
  name = "glob"
95
108
  version = "0.3.3"
96
109
  source = "registry+https://github.com/rust-lang/crates.io-index"
97
110
  checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
98
111
 
112
+ [[package]]
113
+ name = "hermit-abi"
114
+ version = "0.5.2"
115
+ source = "registry+https://github.com/rust-lang/crates.io-index"
116
+ checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
117
+
118
+ [[package]]
119
+ name = "humantime"
120
+ version = "2.3.0"
121
+ source = "registry+https://github.com/rust-lang/crates.io-index"
122
+ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424"
123
+
124
+ [[package]]
125
+ name = "is-terminal"
126
+ version = "0.4.16"
127
+ source = "registry+https://github.com/rust-lang/crates.io-index"
128
+ checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9"
129
+ dependencies = [
130
+ "hermit-abi",
131
+ "libc",
132
+ "windows-sys 0.59.0",
133
+ ]
134
+
99
135
  [[package]]
100
136
  name = "itertools"
101
137
  version = "0.12.1"
@@ -125,25 +161,31 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
125
161
 
126
162
  [[package]]
127
163
  name = "libc"
128
- version = "0.2.175"
164
+ version = "0.2.176"
129
165
  source = "registry+https://github.com/rust-lang/crates.io-index"
130
- checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
166
+ checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174"
131
167
 
132
168
  [[package]]
133
169
  name = "libloading"
134
- version = "0.8.8"
170
+ version = "0.8.9"
135
171
  source = "registry+https://github.com/rust-lang/crates.io-index"
136
- checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667"
172
+ checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
137
173
  dependencies = [
138
174
  "cfg-if",
139
- "windows-targets",
175
+ "windows-link",
140
176
  ]
141
177
 
178
+ [[package]]
179
+ name = "log"
180
+ version = "0.4.28"
181
+ source = "registry+https://github.com/rust-lang/crates.io-index"
182
+ checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
183
+
142
184
  [[package]]
143
185
  name = "magnus"
144
- version = "0.6.4"
186
+ version = "0.8.1"
145
187
  source = "registry+https://github.com/rust-lang/crates.io-index"
146
- checksum = "b1597ef40aa8c36be098249e82c9a20cf7199278ac1c1a1a995eeead6a184479"
188
+ checksum = "bd2ac6e71886be00ac34db92aa732c793c5107c95191805b9a1c7e70e6d342e0"
147
189
  dependencies = [
148
190
  "magnus-macros",
149
191
  "rb-sys",
@@ -153,9 +195,9 @@ dependencies = [
153
195
 
154
196
  [[package]]
155
197
  name = "magnus-macros"
156
- version = "0.6.0"
198
+ version = "0.8.0"
157
199
  source = "registry+https://github.com/rust-lang/crates.io-index"
158
- checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
200
+ checksum = "47607461fd8e1513cb4f2076c197d8092d921a1ea75bd08af97398f593751892"
159
201
  dependencies = [
160
202
  "proc-macro2",
161
203
  "quote",
@@ -164,9 +206,9 @@ dependencies = [
164
206
 
165
207
  [[package]]
166
208
  name = "memchr"
167
- version = "2.7.5"
209
+ version = "2.7.6"
168
210
  source = "registry+https://github.com/rust-lang/crates.io-index"
169
- checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
211
+ checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
170
212
 
171
213
  [[package]]
172
214
  name = "minimal-lexical"
@@ -228,24 +270,25 @@ dependencies = [
228
270
 
229
271
  [[package]]
230
272
  name = "rb-sys-env"
231
- version = "0.1.2"
273
+ version = "0.2.2"
232
274
  source = "registry+https://github.com/rust-lang/crates.io-index"
233
- checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
275
+ checksum = "08f8d2924cf136a1315e2b4c7460a39f62ef11ee5d522df9b2750fab55b868b6"
234
276
 
235
277
  [[package]]
236
278
  name = "rbcsv"
237
279
  version = "0.1.0"
238
280
  dependencies = [
239
281
  "csv",
282
+ "env_logger",
283
+ "log",
240
284
  "magnus",
241
- "rb-sys",
242
285
  ]
243
286
 
244
287
  [[package]]
245
288
  name = "regex"
246
- version = "1.11.2"
289
+ version = "1.11.3"
247
290
  source = "registry+https://github.com/rust-lang/crates.io-index"
248
- checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912"
291
+ checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c"
249
292
  dependencies = [
250
293
  "aho-corasick",
251
294
  "memchr",
@@ -255,9 +298,9 @@ dependencies = [
255
298
 
256
299
  [[package]]
257
300
  name = "regex-automata"
258
- version = "0.4.10"
301
+ version = "0.4.11"
259
302
  source = "registry+https://github.com/rust-lang/crates.io-index"
260
- checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6"
303
+ checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad"
261
304
  dependencies = [
262
305
  "aho-corasick",
263
306
  "memchr",
@@ -290,27 +333,27 @@ checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
290
333
 
291
334
  [[package]]
292
335
  name = "serde"
293
- version = "1.0.225"
336
+ version = "1.0.227"
294
337
  source = "registry+https://github.com/rust-lang/crates.io-index"
295
- checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d"
338
+ checksum = "80ece43fc6fbed4eb5392ab50c07334d3e577cbf40997ee896fe7af40bba4245"
296
339
  dependencies = [
297
340
  "serde_core",
298
341
  ]
299
342
 
300
343
  [[package]]
301
344
  name = "serde_core"
302
- version = "1.0.225"
345
+ version = "1.0.227"
303
346
  source = "registry+https://github.com/rust-lang/crates.io-index"
304
- checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383"
347
+ checksum = "7a576275b607a2c86ea29e410193df32bc680303c82f31e275bbfcafe8b33be5"
305
348
  dependencies = [
306
349
  "serde_derive",
307
350
  ]
308
351
 
309
352
  [[package]]
310
353
  name = "serde_derive"
311
- version = "1.0.225"
354
+ version = "1.0.227"
312
355
  source = "registry+https://github.com/rust-lang/crates.io-index"
313
- checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516"
356
+ checksum = "51e694923b8824cf0e9b382adf0f60d4e05f348f357b38833a3fa5ed7c2ede04"
314
357
  dependencies = [
315
358
  "proc-macro2",
316
359
  "quote",
@@ -340,25 +383,60 @@ dependencies = [
340
383
  "unicode-ident",
341
384
  ]
342
385
 
386
+ [[package]]
387
+ name = "termcolor"
388
+ version = "1.4.1"
389
+ source = "registry+https://github.com/rust-lang/crates.io-index"
390
+ checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
391
+ dependencies = [
392
+ "winapi-util",
393
+ ]
394
+
343
395
  [[package]]
344
396
  name = "unicode-ident"
345
397
  version = "1.0.19"
346
398
  source = "registry+https://github.com/rust-lang/crates.io-index"
347
399
  checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
348
400
 
401
+ [[package]]
402
+ name = "winapi-util"
403
+ version = "0.1.11"
404
+ source = "registry+https://github.com/rust-lang/crates.io-index"
405
+ checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
406
+ dependencies = [
407
+ "windows-sys 0.61.1",
408
+ ]
409
+
349
410
  [[package]]
350
411
  name = "windows-link"
351
- version = "0.1.3"
412
+ version = "0.2.0"
352
413
  source = "registry+https://github.com/rust-lang/crates.io-index"
353
- checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
414
+ checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
354
415
 
355
416
  [[package]]
356
- name = "windows-targets"
357
- version = "0.53.3"
417
+ name = "windows-sys"
418
+ version = "0.59.0"
358
419
  source = "registry+https://github.com/rust-lang/crates.io-index"
359
- checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91"
420
+ checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
421
+ dependencies = [
422
+ "windows-targets",
423
+ ]
424
+
425
+ [[package]]
426
+ name = "windows-sys"
427
+ version = "0.61.1"
428
+ source = "registry+https://github.com/rust-lang/crates.io-index"
429
+ checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f"
360
430
  dependencies = [
361
431
  "windows-link",
432
+ ]
433
+
434
+ [[package]]
435
+ name = "windows-targets"
436
+ version = "0.52.6"
437
+ source = "registry+https://github.com/rust-lang/crates.io-index"
438
+ checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
439
+ dependencies = [
362
440
  "windows_aarch64_gnullvm",
363
441
  "windows_aarch64_msvc",
364
442
  "windows_i686_gnu",
@@ -371,48 +449,48 @@ dependencies = [
371
449
 
372
450
  [[package]]
373
451
  name = "windows_aarch64_gnullvm"
374
- version = "0.53.0"
452
+ version = "0.52.6"
375
453
  source = "registry+https://github.com/rust-lang/crates.io-index"
376
- checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764"
454
+ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
377
455
 
378
456
  [[package]]
379
457
  name = "windows_aarch64_msvc"
380
- version = "0.53.0"
458
+ version = "0.52.6"
381
459
  source = "registry+https://github.com/rust-lang/crates.io-index"
382
- checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c"
460
+ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
383
461
 
384
462
  [[package]]
385
463
  name = "windows_i686_gnu"
386
- version = "0.53.0"
464
+ version = "0.52.6"
387
465
  source = "registry+https://github.com/rust-lang/crates.io-index"
388
- checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3"
466
+ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
389
467
 
390
468
  [[package]]
391
469
  name = "windows_i686_gnullvm"
392
- version = "0.53.0"
470
+ version = "0.52.6"
393
471
  source = "registry+https://github.com/rust-lang/crates.io-index"
394
- checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11"
472
+ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
395
473
 
396
474
  [[package]]
397
475
  name = "windows_i686_msvc"
398
- version = "0.53.0"
476
+ version = "0.52.6"
399
477
  source = "registry+https://github.com/rust-lang/crates.io-index"
400
- checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d"
478
+ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
401
479
 
402
480
  [[package]]
403
481
  name = "windows_x86_64_gnu"
404
- version = "0.53.0"
482
+ version = "0.52.6"
405
483
  source = "registry+https://github.com/rust-lang/crates.io-index"
406
- checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba"
484
+ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
407
485
 
408
486
  [[package]]
409
487
  name = "windows_x86_64_gnullvm"
410
- version = "0.53.0"
488
+ version = "0.52.6"
411
489
  source = "registry+https://github.com/rust-lang/crates.io-index"
412
- checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57"
490
+ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
413
491
 
414
492
  [[package]]
415
493
  name = "windows_x86_64_msvc"
416
- version = "0.53.0"
494
+ version = "0.52.6"
417
495
  source = "registry+https://github.com/rust-lang/crates.io-index"
418
- checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
496
+ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"