You must refactor the beast that lies beneath the authorization mechanism of an invoice system. You are new to the project. All you see is a sea of "if" statements. Your task: Make the if statements go away.
The code is real. It was at the bottom of our construction management invoice system that has handled billions of dollars of construction. I have graciously been given permission by my supervisor to use it for this lesson. Enjoy!
The kata was written with Ruby 1.9.3 and expects Minitest and SimpleCov. Use 'bundle' to get everything just so. A default rake task will run the tests and create a coverage report. No fair changing the tests or modifying the stubbed-out classes and methods.
Under Apache 2.0 license.