Closed brabanod closed 7 months ago
Seems like the code that is causing this is the regular expression in lib/arkana/models/type.rb
when /^\d+$/
INTEGER
Is there any way to prevent arcana from doing this? I could of course add a character in front of my value like a0001
so that arkana will handle it like a string, however then I have to remove that character again in the code. It's not a very nice solution. Are there any solutions known to this problems, which can be configured directly in arkana?
Hi @brabanod 👋
It seems like you're the first person to request this type of behavior. Aside from the solution you proposed of adding an extra character, I see two other solutions that could be built into Arkana itself:
"0001"
) is equal to its numeric representation after converting it (e.g. 1
in your case). If it's not, parse it as a String instead.What do you think of these solutions? I lean towards less configurations (thus, less env vars), but not sure if the 2nd solution has any pitfalls I'm not seeing, that could potentially break people's code if they're using it 🤔 perhaps thinking of edge cases like massive numbers (larger than 64-bit) could break this unintentionally? What about negative numbers? I suppose these are already not supported anyway.
Let me know what you think :)
I opened a PR with the 2nd implementation above, and added extensive tests to cover the scenarios I could think of. Let me know if that works for you @brabanod 😃
Hey @rogerluan, sorry for the late response! The second solution looks perfect. Thank you very much for taking the time to implement it, really appreciate it! Just tested it with the latest version and everything works perfectly fine 🎉
Amazing, I'm glad it helped you! Thank you for your feedback @brabanod 🤗 really appreciate it!
When I define a variable in my
.env
file like this:This will be translated by arkana into an integer with the trailing zeros being removed.
What I need however is to have the exact same string
"0001"
when I accessmyVar
in the code. Is this a bug or is there a way to force parsing as string?