This code comes from Chapter 1 of the book "Refactoring: Improving the Design of Existing Code", by Martin Fowler. It is in the state you see at the beginning of the chapter. 2010-05-13 Ported to Ruby for 810:188 (Summer 2010) / Eugene Wallingford 2012-10-01 Ported back to Java for CS 2530 (Fall 2012) / Eugene Wallingford ----------------------------------------------------------------------------- HISTORY v0 The original code. v1 Decomposed the statement() method, creating helper methods to compute prices and frequent renter points. v2 Moved priceFor() and frequentRenterPoints() to the Rental class. v3 Created htmlStatement() method and tests. v4a Moved priceFor() to the Movie class. v4b Created MovieCategory class and subclasses. Changed priceCode from int to Category. v4c Moved price() to the Category classes. @todo -- Moved frequentRenterPoints() to the Category classes. @todo Eliminate Movie price code constants. @todo Eliminate Movie public accessors