Commit Graph

260 Commits

Author SHA1 Message Date
Caleb Kleveter 9efdf35962
Clear currentCell after newline in _CSVDecoder.organize(_:) on header parsing 2018-06-07 09:09:07 -05:00
Caleb Kleveter 4343fe0900
Replaced row and cell copies from _CSVDecoder with DecoderDataContainer referance passing and value updates 2018-06-06 10:36:38 -05:00
Caleb Kleveter 311c6fc64f
Updated tests for new test data file (2018 StackOverflow dev survey) 2018-06-06 07:28:22 -05:00
Caleb Kleveter 32db56c114
Removed unused stringDecoding value from _CSVDecoder class 2018-06-06 06:49:30 -05:00
Caleb Kleveter b7cbe5d3a3
Moved String(_:) and CustomStringConvertible.bytes to Utilities.swift with Dictionary<String,Value>.value(for:) 2018-06-05 15:03:54 -05:00
Caleb Kleveter 29b6820c54
Change header string encoding from Data to byte array ([UInt8]) 2018-06-05 11:52:55 -05:00
Caleb Kleveter bbf86e6917
Replaced uses of String(data:encoding:) with custom String(_:), which wraps String(bytes:encoding:) 2018-06-04 17:18:45 -05:00
Caleb Kleveter 366d4f235a
Append nil to column if count is 0 in _CSVDecoder.organize(_:stringDecoding:) 2018-06-04 11:02:10 -05:00
Caleb Kleveter 8b0c481bd8
Replaced fatal error in CSV header generation with CoreError in _CSVDecoder.organize(_:stringDecoding:) 2018-06-04 11:01:09 -05:00
Caleb Kleveter c1d71de114
Ignore commas when parsing a number from a byte array 2018-06-04 10:59:19 -05:00
Caleb Kleveter f292737b17
Use byte (UInt8) array instead of Data when encoding CSV 2018-06-01 18:22:08 -05:00
Caleb Kleveter 23bd35d662
Organize data and decode with byte (UInt8) arrays instead of Data. Support quote escapes for newlines and commas 2018-06-01 17:42:33 -05:00
Caleb Kleveter 60eca9a4cc
Decode nil for single or keyed values if value is 'NA' or 'N/A' 2018-06-01 09:18:46 -05:00
Caleb Kleveter f5940d49e9
Create decoding error for for unsupported type in _CSVUnkeyedDecoder.error(for:) 2018-06-01 09:09:01 -05:00
Caleb Kleveter 0ee37129f8
Set container data to empty data in _CSVSingleValueEncoder.encodeNil() 2018-06-01 08:13:25 -05:00
Caleb Kleveter fe62556944
Installed Crypto's Random library to CSVTest target 2018-05-29 10:40:28 -05:00
Caleb Kleveter 7f5b8328dd
Set default value of stringEncoding parameter in Future<Data>.csvTo(_:stringDecoding:) method to .utf32 2018-05-09 13:54:38 -05:00
Caleb Kleveter 17d0bd94cf
Get cell at column index during dictionary reduce in Dictionary<String, Array<OptionalType>>.makeRows() method 2018-05-09 13:13:04 -05:00
Caleb Kleveter 5128bb65b9
Set default decoder string encoding type to UTF-32 2018-05-09 08:56:36 -05:00
Caleb Kleveter 25d453f70a
Created testCSVDataOrganizeSpeed test case for _CSVDecoder.organize(_:stringDecoding:) method 2018-05-09 08:31:38 -05:00
Caleb Kleveter 52b837ac32
Use .reduce instead of .filter.map methods for removing nil keys in Dictionary<String, Array<OptionalType>>.makeRows 2018-05-09 08:14:07 -05:00
Caleb Kleveter 2ddff954f8
Use .endIndex instead of .count for checking element existance in Data -> Number conversion 2018-05-08 16:56:40 -05:00
Caleb Kleveter 0ad6f22682
Swift collections don't always start on index '0' 🤯 2018-05-08 16:51:56 -05:00
Caleb Kleveter af2753a573
Made Dictionary<String, Array<Data>> extension generic where Value is Collection<OptionalType> 2018-05-08 16:34:10 -05:00
Caleb Kleveter 703e7e7485
Removed print from testCSVEncoding test method: 2018-05-08 16:10:42 -05:00
Caleb Kleveter 26cd2f2657
Added stringDecoding property initialization to _CSVDecoder inits 2018-05-08 16:08:14 -05:00
Caleb Kleveter ccf07c6ca6
Added stringEncoding parameter to Future<Data>.csvTo method 2018-05-08 16:07:24 -05:00
Caleb Kleveter dd2c8c2f52
Changed _CSVSingleValueDecoder stored value to Data? 2018-05-08 16:06:22 -05:00
Caleb Kleveter 064a14d68d
Set row cell type to Data in _CSVKeyedDecoder 2018-05-08 15:55:44 -05:00
Caleb Kleveter 5f0d4b39b1
Added Data cell type to _CSVUnkeyedDecoder 2018-05-08 15:36:04 -05:00
Caleb Kleveter a8e61a3591
Added stringDecoding property to _CSVDecoder class for encoding type of decoded strings 2018-05-08 15:29:14 -05:00
Caleb Kleveter 8c1dca8a67
Changed _CSVDecoder column cell type from String to Data 2018-05-08 15:24:42 -05:00
Caleb Kleveter e66f1917be
Mmoved _CSVUnkeyedDecoder.pop implementation to .decode(_:T) method 2018-05-08 10:22:15 -05:00
Caleb Kleveter e24a584d93
Stored column length for Dictionary<String, Array<String?>>.makeRows returned method 2018-05-08 10:11:54 -05:00
Caleb Kleveter 3fc73eb044
Created CSV decoding speed test 2018-05-08 09:53:44 -05:00
Caleb Kleveter 5be1925400
Encode column titles to data container if they have not yet in _CSVKeyedEncoder 2018-05-08 09:47:30 -05:00
Caleb Kleveter 334800d009
Added support for all columns in test CSV to Fielder struct 2018-05-08 09:21:46 -05:00
Caleb Kleveter 533bddc1ba
Decode rows with non-optional stored values 2018-05-08 09:20:19 -05:00
Caleb Kleveter db2d72ebfc
Allow passing in value for titlesCreated property in DataContainer init method 2018-05-08 09:18:32 -05:00
Caleb Kleveter 5762101689
_CSVUnkeyedEncoder sub-encodable encoder encode titles if stored data has a length zero 2018-05-08 09:17:30 -05:00
Caleb Kleveter d34279b7b9
Set column cell to nil for zero length data when parsing CSV data 2018-05-08 09:15:48 -05:00
Caleb Kleveter cc535cb47a
Created testCSVEncodingSpeed and testCSVEncodingSpeed test methods 2018-05-07 16:20:58 -05:00
Caleb Kleveter d550461396
Added boolEncoding and stringEncoding parameters to CSVCoder.encode(_:) method 2018-05-07 13:45:53 -05:00
Caleb Kleveter 3a31fce01d
Implemented _CSVEncoder container methods 2018-05-07 13:37:19 -05:00
Caleb Kleveter 046ed46a7e
Created _CSVUnkeyedEncoder 2018-05-07 13:32:43 -05:00
Caleb Kleveter 4245275c9e
Implemented _CSVKeyedEncoder.nestedUnkeyedContainer(forKey:) method 2018-05-07 13:31:17 -05:00
Caleb Kleveter 7dbfd4324a
Created _CSVKeyedEncoder 2018-05-07 11:41:51 -05:00
Caleb Kleveter 84032c6845
Created Dictionary<String, Array<String?>>.serelize() method 2018-05-07 10:37:31 -05:00
Caleb Kleveter 314d764f65
Replaced Array<Data>.joined(separator:) 'reduce' implementation with a while loop 2018-05-07 09:59:48 -05:00
Caleb Kleveter 5cdb75a49c
Created Array<CSV.Column>.seralize() method 2018-05-07 09:46:40 -05:00