jMe - Initial setup. Added Gemfile, rpsec config, bundler config and the problem statement
jMe - Dummy test. Rspec works
jMe - Fixed test the right way. Adding 5% markup flat.
jMe - Adding 1.2% for every person that needs to work on the job
jMe - Argh! Read the problem statement properly jMe. The per person markup is applied on the flat markup, and not the base cost.
jMe - Refactoring out the PerPersonMarkup into its own class. Job doesn't need to know how much is the per person markup now
jMe - Flat markup is also a markup. So why should it not be one? Extracted its own class
jMe - Added food markup. Not added unit test as im thinking maybe its not worth seperate classes for each type of markup
jMe - Identified model for SimpleMarkup. All the types of Markup that we have are just parameterised versions of the same markup. The behavior does not change. Hence no reason to have seperate classes
jMe - Dead simple to add a new markup rate now. Just define the constant and use
jMe - Final test case complete. Need to round now
jMe - Rounding off to 2 decimal places
jMe - Adding electronics markup rate for sake of completion of solution
jMe - Extracted a seperate module for Markups
jMe - Dropping the word Markup from the class name. The Module name is Markup, hence its redundant in the class name
jMe - Dropping the word markup from the constants as well
jMe - Missed updating the method name in the test
jMe - Test name was misleading. Job can have any type of markup
jMe - Missing a test case for multiple markups
jMe - Its actually additional markups