Open luke-hill opened 11 months ago
ping @aslakhellesoy if you're around. @mpkorstanje also as a breakout to enable the refactor PR for ruby to be done.
I'll raise this as a discussion point next thurs for others to read/chat on. @davidjgoss / @ehuelsmann spring to mind as obvious ones as well as @WannesFransen1994
Therefore I propose removing all getters and just rely on using the hash methods.
For Ruby only? No problem. I don't know enough about Ruby to make a judgement there.
For the other languages I don't think this is necessarily as good idea.
In general we want to keep the code structure (folders, files, clas names, method names, ect) similar so we can compare the implementations.
And that means we can't use all the best practices for each language. But for Ruby, and this specific change, I don't see a problem because we're not changing the structure.
Do you think then maybe just renaming all the getter methods to something diff for that one method end
is perhaps the best course of action (Maybe with a comment explaining why?)
🤔 What's the problem you've observed?
In many of the AST sub-classes, such as
Node
there are a variety of attributes passed in. One of these is calledend
or derivations thereof. This name "end" can be problematic in some languages (Such as ruby). A few examples are below Java - https://github.com/cucumber/cucumber-expressions/blob/main/java/src/main/java/io/cucumber/cucumberexpressions/Ast.java#L64 Ruby - https://github.com/cucumber/cucumber-expressions/blob/main/ruby/lib/cucumber/cucumber_expressions/ast.rb#L38 JS - https://github.com/cucumber/cucumber-expressions/blob/main/javascript/src/Ast.ts#L77✨ Do you have a proposal for making it better?
It seems as though we often use the hash representation methods, and not directly using the getters. Therefore I propose removing all getters and just rely on using the hash methods. Failing this maybe altering start/end to
starting
andending
📚 Any additional context?
This text was originally generated from a template, then edited by hand. You can modify the template here.