/* <CoffeeScript>
duckifyFile = require('./duckifyFile').duckifyFile
{DoublyLinkedList} = require('doubly-linked-list')
</CoffeeScript> */
/**
* @method buildMainFile
* @member jsduckify
*
* @param {String} filename
* @param {String} readmeString
* @param {String} mainSourceString CoffeeScript source
* @param {Array} exportsAPI each row contains {baseName, fullName, type}
* @param {String} prefix the root for this documentation
*
* @return {String} duckifiedMainFile
*/
/* <CoffeeScript>
exports.buildMainFile = (filename, readmeString, mainSourceString, exportsAPI, prefix) ->
# Breaks the file down into lines.
lineList = new DoublyLinkedList(mainSourceString.split('\n'))
unless lineList.head.value.indexOf('###') == 0 # Starts with a DocString. Make it the Main.
lineList.head.insertBefore('###')
lineList.head.insertBefore('###')
lineList.head.insertAfter(readmeString)
lineList.head.insertAfter("@class #{prefix}")
sourceFileString = lineList.toArray().join('\n')
# sourceFileString = """
# ###
# @class #{prefix}
# @extends
# #{readmeString}
# ###
# #{mainSourceString}
# """
for e in exportsAPI
unless e.processed?
console.log("Couldn't find #{e.fullName} in source.")
duckifiedMainFile = duckifyFile(filename, sourceFileString, exportsAPI, prefix = '', true)
return duckifiedMainFile
</CoffeeScript> */