rbcsv 0.1.4 → 0.1.7
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 +4 -4
- data/.rust-analyzer.json +8 -0
- data/CHANGELOG.md +50 -0
- data/Cargo.lock +123 -44
- data/DEVELOPMENT.md +491 -0
- data/ext/rbcsv/Cargo.toml +6 -1
- data/ext/rbcsv/src/error.rs +87 -0
- data/ext/rbcsv/src/lib.rs +12 -62
- data/ext/rbcsv/src/parser.rs +187 -0
- data/ext/rbcsv/src/ruby_api.rs +98 -0
- data/lib/rbcsv/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 351d11d92922c2f119bf0e273abddd2cfdbe55fa46eaf2577710f0ef241ceacb
|
|
4
|
+
data.tar.gz: adee292996af62f55eaf70ab0d927c9fc4b2a5c85cc1687775e6c6507d1851a4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ea495c0d2d329c59b31fe64a9de7643bfb7e6a7d70ec3bbb18c4316659004bb30b88f1ec7a8b197888f877bcf4b1cc335e9042644b1d1e377efdee3cb1912a3c
|
|
7
|
+
data.tar.gz: d20567b6ca4f1650190ffc74d16405bf6e68d2606dd873e978806c0e132c97b7ca102bb1a00e81d2298d5a539de1c09227596fb5f2a94971beace577bad7fa7c
|
data/.rust-analyzer.json
ADDED
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.1.7] - 2025-01-28
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- **BREAKING**: API redesigned to use function-based approach with `!` suffix for trim functionality
|
|
7
|
+
- `parse(csv)` and `parse!(csv)` for regular and trimmed parsing
|
|
8
|
+
- `read(file)` and `read!(file)` for regular and trimmed file reading
|
|
9
|
+
- Removed option-based API in favor of cleaner function separation
|
|
10
|
+
- Major internal refactoring: split code into modular structure
|
|
11
|
+
- `parser.rs`: Core CSV parsing logic
|
|
12
|
+
- `ruby_api.rs`: Ruby bindings and API functions
|
|
13
|
+
- `error.rs`: Error handling and custom error types
|
|
14
|
+
- Updated to follow Ruby naming conventions with `!` suffix for modified behavior
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- Comprehensive error handling with detailed error messages
|
|
18
|
+
- Support for various CSV edge cases (empty fields, special characters)
|
|
19
|
+
- Extensive test coverage for all parsing scenarios
|
|
20
|
+
- Improved documentation with DEVELOPMENT.md enhancements
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- Memory efficiency improvements in CSV parsing
|
|
24
|
+
- Better handling of UTF-8 encoded data
|
|
25
|
+
- Consistent error reporting across all functions
|
|
26
|
+
|
|
27
|
+
### Development
|
|
28
|
+
- Added detailed project structure documentation
|
|
29
|
+
- Enhanced build and test procedures in DEVELOPMENT.md
|
|
30
|
+
- Improved release process documentation
|
|
31
|
+
|
|
32
|
+
## [0.1.6] - 2025-09-27
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
- Version bump for gem release
|
|
36
|
+
|
|
37
|
+
## [0.1.5] - 2025-09-27
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
- Fixed Magnus init function compatibility with version 0.6
|
|
41
|
+
- Added missing rb-sys dependency for proper Ruby header linking
|
|
42
|
+
- Fixed module name inconsistency in RSpec tests (RCsv → RbCsv)
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
- Updated Magnus initialization to use `#[magnus::init]` attribute
|
|
46
|
+
- Improved error handling with Magnus::Error type
|
|
47
|
+
- Cleaned up unused imports
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
- Documentation for AI-driven gem version upgrade process
|
|
51
|
+
- Tests for parse_with_trim functionality
|
|
52
|
+
|
|
3
53
|
## [0.1.4] - 2025-09-20
|
|
4
54
|
|
|
5
55
|
- **Fixed**: CSV parse method returning empty array due to incorrect header handling
|
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.
|
|
164
|
+
version = "0.2.176"
|
|
129
165
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
130
|
-
checksum = "
|
|
166
|
+
checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174"
|
|
131
167
|
|
|
132
168
|
[[package]]
|
|
133
169
|
name = "libloading"
|
|
134
|
-
version = "0.8.
|
|
170
|
+
version = "0.8.9"
|
|
135
171
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
136
|
-
checksum = "
|
|
172
|
+
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
|
|
137
173
|
dependencies = [
|
|
138
174
|
"cfg-if",
|
|
139
|
-
"windows-
|
|
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.
|
|
186
|
+
version = "0.8.1"
|
|
145
187
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
146
|
-
checksum = "
|
|
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.
|
|
198
|
+
version = "0.8.0"
|
|
157
199
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
158
|
-
checksum = "
|
|
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.
|
|
209
|
+
version = "2.7.6"
|
|
168
210
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
169
|
-
checksum = "
|
|
211
|
+
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
|
|
170
212
|
|
|
171
213
|
[[package]]
|
|
172
214
|
name = "minimal-lexical"
|
|
@@ -228,23 +270,25 @@ dependencies = [
|
|
|
228
270
|
|
|
229
271
|
[[package]]
|
|
230
272
|
name = "rb-sys-env"
|
|
231
|
-
version = "0.
|
|
273
|
+
version = "0.2.2"
|
|
232
274
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
233
|
-
checksum = "
|
|
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
285
|
]
|
|
242
286
|
|
|
243
287
|
[[package]]
|
|
244
288
|
name = "regex"
|
|
245
|
-
version = "1.11.
|
|
289
|
+
version = "1.11.3"
|
|
246
290
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
247
|
-
checksum = "
|
|
291
|
+
checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c"
|
|
248
292
|
dependencies = [
|
|
249
293
|
"aho-corasick",
|
|
250
294
|
"memchr",
|
|
@@ -254,9 +298,9 @@ dependencies = [
|
|
|
254
298
|
|
|
255
299
|
[[package]]
|
|
256
300
|
name = "regex-automata"
|
|
257
|
-
version = "0.4.
|
|
301
|
+
version = "0.4.11"
|
|
258
302
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
259
|
-
checksum = "
|
|
303
|
+
checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad"
|
|
260
304
|
dependencies = [
|
|
261
305
|
"aho-corasick",
|
|
262
306
|
"memchr",
|
|
@@ -289,27 +333,27 @@ checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
|
|
|
289
333
|
|
|
290
334
|
[[package]]
|
|
291
335
|
name = "serde"
|
|
292
|
-
version = "1.0.
|
|
336
|
+
version = "1.0.227"
|
|
293
337
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
294
|
-
checksum = "
|
|
338
|
+
checksum = "80ece43fc6fbed4eb5392ab50c07334d3e577cbf40997ee896fe7af40bba4245"
|
|
295
339
|
dependencies = [
|
|
296
340
|
"serde_core",
|
|
297
341
|
]
|
|
298
342
|
|
|
299
343
|
[[package]]
|
|
300
344
|
name = "serde_core"
|
|
301
|
-
version = "1.0.
|
|
345
|
+
version = "1.0.227"
|
|
302
346
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
303
|
-
checksum = "
|
|
347
|
+
checksum = "7a576275b607a2c86ea29e410193df32bc680303c82f31e275bbfcafe8b33be5"
|
|
304
348
|
dependencies = [
|
|
305
349
|
"serde_derive",
|
|
306
350
|
]
|
|
307
351
|
|
|
308
352
|
[[package]]
|
|
309
353
|
name = "serde_derive"
|
|
310
|
-
version = "1.0.
|
|
354
|
+
version = "1.0.227"
|
|
311
355
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
312
|
-
checksum = "
|
|
356
|
+
checksum = "51e694923b8824cf0e9b382adf0f60d4e05f348f357b38833a3fa5ed7c2ede04"
|
|
313
357
|
dependencies = [
|
|
314
358
|
"proc-macro2",
|
|
315
359
|
"quote",
|
|
@@ -339,25 +383,60 @@ dependencies = [
|
|
|
339
383
|
"unicode-ident",
|
|
340
384
|
]
|
|
341
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
|
+
|
|
342
395
|
[[package]]
|
|
343
396
|
name = "unicode-ident"
|
|
344
397
|
version = "1.0.19"
|
|
345
398
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
346
399
|
checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
|
|
347
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
|
+
|
|
348
410
|
[[package]]
|
|
349
411
|
name = "windows-link"
|
|
350
|
-
version = "0.
|
|
412
|
+
version = "0.2.0"
|
|
351
413
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
352
|
-
checksum = "
|
|
414
|
+
checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
|
|
353
415
|
|
|
354
416
|
[[package]]
|
|
355
|
-
name = "windows-
|
|
356
|
-
version = "0.
|
|
417
|
+
name = "windows-sys"
|
|
418
|
+
version = "0.59.0"
|
|
357
419
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
358
|
-
checksum = "
|
|
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"
|
|
359
430
|
dependencies = [
|
|
360
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 = [
|
|
361
440
|
"windows_aarch64_gnullvm",
|
|
362
441
|
"windows_aarch64_msvc",
|
|
363
442
|
"windows_i686_gnu",
|
|
@@ -370,48 +449,48 @@ dependencies = [
|
|
|
370
449
|
|
|
371
450
|
[[package]]
|
|
372
451
|
name = "windows_aarch64_gnullvm"
|
|
373
|
-
version = "0.
|
|
452
|
+
version = "0.52.6"
|
|
374
453
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
375
|
-
checksum = "
|
|
454
|
+
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
|
376
455
|
|
|
377
456
|
[[package]]
|
|
378
457
|
name = "windows_aarch64_msvc"
|
|
379
|
-
version = "0.
|
|
458
|
+
version = "0.52.6"
|
|
380
459
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
381
|
-
checksum = "
|
|
460
|
+
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
|
382
461
|
|
|
383
462
|
[[package]]
|
|
384
463
|
name = "windows_i686_gnu"
|
|
385
|
-
version = "0.
|
|
464
|
+
version = "0.52.6"
|
|
386
465
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
387
|
-
checksum = "
|
|
466
|
+
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
|
|
388
467
|
|
|
389
468
|
[[package]]
|
|
390
469
|
name = "windows_i686_gnullvm"
|
|
391
|
-
version = "0.
|
|
470
|
+
version = "0.52.6"
|
|
392
471
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
393
|
-
checksum = "
|
|
472
|
+
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
|
394
473
|
|
|
395
474
|
[[package]]
|
|
396
475
|
name = "windows_i686_msvc"
|
|
397
|
-
version = "0.
|
|
476
|
+
version = "0.52.6"
|
|
398
477
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
399
|
-
checksum = "
|
|
478
|
+
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
|
400
479
|
|
|
401
480
|
[[package]]
|
|
402
481
|
name = "windows_x86_64_gnu"
|
|
403
|
-
version = "0.
|
|
482
|
+
version = "0.52.6"
|
|
404
483
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
405
|
-
checksum = "
|
|
484
|
+
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
|
406
485
|
|
|
407
486
|
[[package]]
|
|
408
487
|
name = "windows_x86_64_gnullvm"
|
|
409
|
-
version = "0.
|
|
488
|
+
version = "0.52.6"
|
|
410
489
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
411
|
-
checksum = "
|
|
490
|
+
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
|
412
491
|
|
|
413
492
|
[[package]]
|
|
414
493
|
name = "windows_x86_64_msvc"
|
|
415
|
-
version = "0.
|
|
494
|
+
version = "0.52.6"
|
|
416
495
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
417
|
-
checksum = "
|
|
496
|
+
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|