From: Ruby Quiz Date: 2006-04-14T21:46:12+09:00 Subject: [QUIZ] Refactoring (#75) The three rules of Ruby Quiz: 1. Please do not post any solutions or spoiler discussion for this quiz until 48 hours have passed from the time on this message. 2. Support Ruby Quiz by submitting ideas as often as you can: http://www.rubyquiz.com/ 3. Enjoy! Suggestion: A [QUIZ] in the subject of emails about the problem helps everyone on Ruby Talk follow the discussion. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= by Pat Eyler This week's quiz is a bit of a departure from the normal. Instead of submitting different implementations of the same code, we'd like you to submit different implementations of the same process -- Refactoring. Refactoring is the art of improving the design of existing code, without changing it's functional behaviour. It is well documented in the book 'Refactoring' by Martin Fowler, and on his website: http://www.refactoring.com The quiz this week is to submit refactorings of code you use -- whether your own code, a library or application for RubyForge, or even something from the Standard Library. Any submission should implement a refactoring from: http://www.refactoring.com/catalog/index.html or other citable sources, e.g.: http://kallokain.blogspot.com/2006/01/refactoring-extract-mixin.html Each Submission should follow this outline: Refactoring name (and citation if needed) Original code Explanation of the purpose and mechanics of the refactoring New code (optionally, unit tests created/used to verify the code) Submissions will be combined into an online catalog of Ruby Refactorings, probably on the RubyGarden wiki.