Extract local variable
Define a line writer interface
Define a writer adapter
Use line writer
Define a colorizer
Define method for initializing a colorizer
Define method for resolving a color
Define method for writing a line
Use colorizer if output stream is a terminal