Giter VIP home page Giter VIP logo

Comments (5)

rogerluan avatar rogerluan commented on May 12, 2024 1

Amazing, I'm glad it helped you! Thank you for your feedback @brabanod πŸ€— really appreciate it!

from arkana.

brabanod avatar brabanod commented on May 12, 2024

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?

from arkana.

rogerluan avatar rogerluan commented on May 12, 2024

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:

  • Add an env var that, when set, changes this default behavior
  • Compare if the string being read ("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 :)

from arkana.

rogerluan avatar rogerluan commented on May 12, 2024

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 πŸ˜ƒ

from arkana.

brabanod avatar brabanod commented on May 12, 2024

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 πŸŽ‰

from arkana.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.