From 86cf05c7328b172899e4e56a5ad7ce4e531cf08b Mon Sep 17 00:00:00 2001 From: James Allen Date: Tue, 19 Jan 2016 14:12:41 +0000 Subject: [PATCH] Support configurable images in wordcount end point --- app/coffee/CompileController.coffee | 4 +++- app/coffee/CompileManager.coffee | 6 +++--- test/unit/coffee/CompileControllerTests.coffee | 5 +++-- test/unit/coffee/CompileManagerTests.coffee | 7 ++++--- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/coffee/CompileController.coffee b/app/coffee/CompileController.coffee index f7d46b1..dd73040 100644 --- a/app/coffee/CompileController.coffee +++ b/app/coffee/CompileController.coffee @@ -70,8 +70,10 @@ module.exports = CompileController = wordcount: (req, res, next = (error) ->) -> file = req.query.file || "main.tex" project_id = req.params.project_id + image = req.query.image + logger.log {image, file, project_id}, "word count request" - CompileManager.wordcount project_id, file, (error, result) -> + CompileManager.wordcount project_id, file, image, (error, result) -> return next(error) if error? res.send JSON.stringify { texcount: result diff --git a/app/coffee/CompileManager.coffee b/app/coffee/CompileManager.coffee index e7e8849..20e9bc9 100644 --- a/app/coffee/CompileManager.coffee +++ b/app/coffee/CompileManager.coffee @@ -112,14 +112,14 @@ module.exports = CompileManager = } return results - wordcount: (project_id, file_name, callback = (error, pdfPositions) ->) -> - logger.log project_id:project_id, file_name:file_name, "running wordcount" + wordcount: (project_id, file_name, image, callback = (error, pdfPositions) ->) -> + logger.log project_id:project_id, file_name:file_name, image:image, "running wordcount" file_path = "$COMPILE_DIR/" + file_name command = [ "texcount", '-inc', file_path, "-out=" + file_path + ".wc"] directory = Path.join(Settings.path.compilesDir, project_id) timeout = 10 * 1000 - CommandRunner.run project_id, command, directory, timeout, (error) -> + CommandRunner.run project_id, command, directory, image, timeout, (error) -> return callback(error) if error? try stdout = fs.readFileSync(directory + "/" + file_name + ".wc", "utf-8") diff --git a/test/unit/coffee/CompileControllerTests.coffee b/test/unit/coffee/CompileControllerTests.coffee index e0307d2..6a18ce7 100644 --- a/test/unit/coffee/CompileControllerTests.coffee +++ b/test/unit/coffee/CompileControllerTests.coffee @@ -197,14 +197,15 @@ describe "CompileController", -> project_id: @project_id @req.query = file: @file + image: @image = "example.com/image" @res.send = sinon.stub() - @CompileManager.wordcount = sinon.stub().callsArgWith(2, null, @texcount = ["mock-texcount"]) + @CompileManager.wordcount = sinon.stub().callsArgWith(3, null, @texcount = ["mock-texcount"]) @CompileController.wordcount @req, @res, @next it "should return the word count of a file", -> @CompileManager.wordcount - .calledWith(@project_id, @file) + .calledWith(@project_id, @file, @image) .should.equal true it "should return the texcount info", -> diff --git a/test/unit/coffee/CompileManagerTests.coffee b/test/unit/coffee/CompileManagerTests.coffee index dff3052..54576d8 100644 --- a/test/unit/coffee/CompileManagerTests.coffee +++ b/test/unit/coffee/CompileManagerTests.coffee @@ -179,7 +179,7 @@ describe "CompileManager", -> describe "wordcount", -> beforeEach -> - @CommandRunner.run = sinon.stub().callsArg(4) + @CommandRunner.run = sinon.stub().callsArg(5) @fs.readFileSync = sinon.stub().returns @stdout = "Encoding: ascii\nWords in text: 2" @callback = sinon.stub() @@ -187,8 +187,9 @@ describe "CompileManager", -> @timeout = 10 * 1000 @file_name = "main.tex" @Settings.path.compilesDir = "/local/compile/directory" + @image = "example.com/image" - @CompileManager.wordcount @project_id, @file_name, @callback + @CompileManager.wordcount @project_id, @file_name, @image, @callback it "should run the texcount command", -> @directory = "#{@Settings.path.compilesDir}/#{@project_id}" @@ -196,7 +197,7 @@ describe "CompileManager", -> @command =[ "texcount", "-inc", @file_path, "-out=" + @file_path + ".wc"] @CommandRunner.run - .calledWith(@project_id, @command, @directory, @timeout) + .calledWith(@project_id, @command, @directory, @image, @timeout) .should.equal true it "should call the callback with the parsed output", ->