fixed bug with setting root doc which would fail if the document class isn't on the top line

This commit is contained in:
Henry Oswald 2014-12-01 01:07:03 +00:00
parent 175dfae085
commit a570d05132
2 changed files with 7 additions and 5 deletions

View file

@ -5,6 +5,7 @@ _ = require("underscore")
module.exports = ProjectRootDocManager =
setRootDocAutomatically: (project_id, callback = (error) ->) ->
ProjectEntityHandler.getAllDocs project_id, (error, docs) ->
return callback(error) if error?
@ -12,13 +13,14 @@ module.exports = ProjectRootDocManager =
root_doc_id = null
jobs = _.map docs, (doc, path)->
return (cb)->
rootDocId = null
for line in doc.lines || []
match = line.match /(.*)\\documentclass/ # no lookbehind in js regexp :(
isRootDoc = Path.extname(path).match(/\.R?tex$/) and match and !match[1].match /%/
if isRootDoc
return cb(doc?._id)
else
return cb()
rootDocId = doc?._id
cb(rootDocId)
async.series jobs, (root_doc_id)->
if root_doc_id?
ProjectEntityHandler.setRootDoc project_id, root_doc_id, callback

View file

@ -18,10 +18,10 @@ describe 'ProjectRootDocManager', ->
@docs =
"/chapter1.tex":
_id: "doc-id-1"
lines: ["\\begin{document}", "Hello world", "\\end{document}"]
lines: ["something else","\\begin{document}", "Hello world", "\\end{document}"]
"/main.tex":
_id: "doc-id-2"
lines: ["\\documentclass{article}", "\\input{chapter1}"]
lines: ["different line","\\documentclass{article}", "\\input{chapter1}"]
"/nested/chapter1a.tex":
_id: "doc-id-3"
lines: ["Hello world"]