Issue #3 Changing CSV to NimbleCSV#15
Merged
zachdaniel merged 4 commits intoash-project:mainfrom Feb 23, 2026
Merged
Conversation
zachdaniel
reviewed
Feb 3, 2026
zachdaniel
reviewed
Feb 3, 2026
zachdaniel
reviewed
Feb 3, 2026
zachdaniel
reviewed
Feb 3, 2026
zachdaniel
previously approved these changes
Feb 3, 2026
Contributor
|
Oops, meant to request changes not approve. There are a few small things to address here, but overwell very well done, thank you! |
Contributor
|
🚀 Thank you for your contribution! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contributor checklist
Leave anything that you believe does not apply unchecked.
I went in and added the NimbleCSV dependency, then updated the operators in data_layer.ex to use NimbleCSV instead of CSV. The "lines" variable being passed through various functions/methods in the code were replaced with "iodata" because the NimbleCSV operator equivalent to CSV.encode is dump_to_iodata, and so it was easier to keep the two separate when making chnages, I can go back and revert it to "lines" if you would prefer it that way. I also changed build_parser.ex to create the parse compiler as requested so that it will run at compile time.
For testing, as I understood the issue description, you did not want any changes to the actual functionality of the parsing logic, just to refactor CSV to NimbleCSV in order to eliminate the exit messages and optimize the runtime. I wasn't sure if you wanted any additional test for NimbleCSV specifically, and so for testing/regression testing I first removed all CSV operators and ran "mix test" to ensure that all the tests had failed, then after adding the operators for NimbleCSV and adding compiler logic to build_parser.ex I ran it again to ensure it passed all the tests using the refactored logic, ensuring both that CSV was properly removed from the logic and that NimbleCSV was performing correctly.
If you would like me to add additional tests to it for anything in specific I can add those as well. Sorry in advance if I missed anything I was supposed to do, this is my first pull request and I hope I was able to follow the workflow properly.