Ruby duck typing

Old habits die hard. I am writing a set of Ruby classes for handling a variety of document types and my first inclination was to start to design a class hierarchy to factor out common behavior for processing different document types. Specifically, I am handling Word, OpenOffice.org and AbiWord documents. After a little thought I realized that the only common behavior is uncompressing and reading XML files for OpenOffice.org and AbiWord. Also, I only need one public method for my application: given a file path to a document return the plain text from the document.

Anyway, I will start with writing 3 unrelated classes - one for each document type. They will all implement one method signature for retrieving plain text for a document file. I am likely to eventually factor out some common code for processing OpenOffice.org and AbiWord documents, but I can put off that decision (it is better to refactor after you understand a problem better).

Comments

Popular posts from this blog

My Dad's work with Robert Oppenheimer and Edward Teller

Time and Attention Fragmentation in Our Digital Lives

Ruby Sinatra web apps with background work threads