Ruby professional wanted to advise on Object-oriented refactoring
Our company has developed a solution that attempts to interpret a product's name and derive a set of properties based on it. First application is to provide such information to in-house engineerings. Second application is an attempt to interpret users' request.
The major problem is that the code has grown sufficiently long it is has become hard to add more product interpretation. Let alone do fancy things such engineering calculation once properties have been identified.
We need you to understand the desired functionality, analyze existing code (at least at high level) and suggest a way refactor it such that it is easier to maintain and extend.
You are expected to have a solid understanding of a dynamically interpreted programming language such as Ruby. You should feel comfortable develop object-oriented applications.
The approach taken to implement the application described may be rudiment in many ways. There is no doubt you will find it challenging try to improve it and, perhaps, merge with more modern and more AI approaches.
Be aware: We are really bad at describing the logic in diagrams. So we'd have to do pretty much chatting where I will be walking you through the code.