 # Exposed methods
 @write = (str, stream = stdout) => stream.write str; @
 
-@endLine = => console.log(""); @
+@endLine = (stream = stdout) => stream.write "\n"; @
 
 @eraseLine = (stream = stdout) => clearLine(stream); cursorTo(stream, 0); @
 

tag = (txt, style) -> style(_.padEnd(txt, LEFT_MARGIN)) + TAG_INDICATOR

fold = (string, leftPad = LEFT_PADSTRING_LONG_LINES) ->
    cols = Math.max 10, MAX_COLS_PER_LINE - leftPad.length
    chunks = string.split("\n")

    foldImm = (str) ->

TAG_INDICATOR = ': '
LEFT_PADSTRING_LONG_LINES = _.repeat(" ", LEFT_MARGIN + TAG_INDICATOR.length)
MAX_COLS_PER_LINE = stdout.columns - 1
MINIMUM_COLS = 15

# Private methods
getNonOcuppyingLength = (str) -> str.length - stripColor(str).length
