diff --git a/src/side-by-side-printer.js b/src/side-by-side-printer.js
index 485eafc..ccd9e55 100644
--- a/src/side-by-side-printer.js
+++ b/src/side-by-side-printer.js
@@ -23,6 +23,42 @@
this.config = config;
}
+ SideBySidePrinter.prototype.makeDiffHtml = function(file, diffs) {
+ return '
\n' +
+ ' \n' +
+ '
\n' +
+ '
\n' +
+ '
\n' +
+ '
\n' +
+ ' \n' +
+ ' ' + diffs.left +
+ ' \n' +
+ '
\n' +
+ '
\n' +
+ '
\n' +
+ '
\n' +
+ '
\n' +
+ '
\n' +
+ ' \n' +
+ ' ' + diffs.right +
+ ' \n' +
+ '
\n' +
+ '
\n' +
+ '
\n' +
+ '
\n' +
+ '
\n';
+ };
+
SideBySidePrinter.prototype.generateSideBySideJsonHtml = function(diffFiles) {
var that = this;
return '\n' +
@@ -35,43 +71,20 @@
diffs = that.generateEmptyDiff();
}
- return '
\n' +
- ' \n' +
- '
\n' +
- '
\n' +
- '
\n' +
- '
\n' +
- ' \n' +
- ' ' + diffs.left +
- ' \n' +
- '
\n' +
- '
\n' +
- '
\n' +
- '
\n' +
- '
\n' +
- '
\n' +
- ' \n' +
- ' ' + diffs.right +
- ' \n' +
- '
\n' +
- '
\n' +
- '
\n' +
- '
\n' +
- '
\n';
+ return that.makeDiffHtml(file, diffs);
}).join('\n') +
'
\n';
};
+ SideBySidePrinter.prototype.makeSideHtml = function(blockHeader) {
+ return '\n' +
+ ' | \n' +
+ ' \n' +
+ ' ' + blockHeader + ' \n' +
+ ' | \n' +
+ '
\n';
+ };
+
SideBySidePrinter.prototype.generateSideBySideFileHtml = function(file) {
var that = this;
var fileHtml = {};
@@ -80,21 +93,8 @@
file.blocks.forEach(function(block) {
- fileHtml.left += '\n' +
- ' | \n' +
- ' ' +
- ' ' +
- ' ' + utils.escape(block.header) +
- ' ' +
- ' | \n' +
- '
\n';
-
- fileHtml.right += '\n' +
- ' | \n' +
- ' ' +
- ' ' +
- ' | \n' +
- '
\n';
+ fileHtml.left += that.makeSideHtml(utils.escape(block.header));
+ fileHtml.right += that.makeSideHtml('');
var oldLines = [];
var newLines = [];
@@ -226,6 +226,15 @@
return fileHtml;
};
+ SideBySidePrinter.prototype.makeSingleLineHtml = function(type, number, htmlContent, htmlPrefix) {
+ return '\n' +
+ ' | ' + number + ' | \n' +
+ ' ' +
+ ' ' + htmlPrefix + htmlContent + ' ' +
+ ' | \n' +
+ '
\n';
+ };
+
SideBySidePrinter.prototype.generateSingleLineHtml = function(type, number, content, prefix) {
var htmlPrefix = '';
if (prefix) {
@@ -237,12 +246,7 @@
htmlContent = '' + content + '';
}
- return '\n' +
- ' | ' + number + ' | \n' +
- ' ' +
- ' ' + htmlPrefix + htmlContent + ' ' +
- ' | \n' +
- '
\n';
+ return this.makeSingleLineHtml(type, number, htmlContent, htmlPrefix);
};
SideBySidePrinter.prototype.generateEmptyDiff = function() {
diff --git a/test/side-by-side-printer-tests.js b/test/side-by-side-printer-tests.js
index 87128bd..dbbb000 100644
--- a/test/side-by-side-printer-tests.js
+++ b/test/side-by-side-printer-tests.js
@@ -120,4 +120,37 @@ describe('SideBySidePrinter', function() {
parsedFileLeft.querySelectorAll(prefixTag).length);
});
});
+
+ describe('generateSingleLineHtml', function() {
+ it('should work for insertions', function() {
+
+ var diffParser = require('../src/diff-parser.js').DiffParser;
+ var sideBySidePrinter = new SideBySidePrinter({});
+ var fileHtml = sideBySidePrinter.generateSingleLineHtml(
+ diffParser.LINE_TYPE.INSERTS, 30, 'test', '+');
+ var expected = '\n' +
+ ' | 30 | \n' +
+ ' ' +
+ ' +test ' +
+ ' | \n' +
+ '
\n';
+
+ assert.equal(expected, fileHtml);
+ });
+ it('should work for deletions', function() {
+
+ var diffParser = require('../src/diff-parser.js').DiffParser;
+ var sideBySidePrinter = new SideBySidePrinter({});
+ var fileHtml = sideBySidePrinter.generateSingleLineHtml(
+ diffParser.LINE_TYPE.DELETES, 30, 'test', '-');
+ var expected = '\n' +
+ ' | 30 | \n' +
+ ' ' +
+ ' -test ' +
+ ' | \n' +
+ '
\n';
+
+ assert.equal(expected, fileHtml);
+ });
+ });
});