kudo
Version:
check someone's code quality in git repository
418 lines (416 loc) • 18.5 kB
HTML
<html lang="en">
<head>
<title>Code coverage report for lib/analyse.js</title>
<meta charset="utf-8">
<link rel="stylesheet" href="../prettify.css">
<link rel="stylesheet" href="../base.css">
<style type='text/css'>
div.coverage-summary .sorter {
background-image: url(../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class="header high">
<h1>Code coverage report for <span class="entity">lib/analyse.js</span></h1>
<h2>
Statements: <span class="metric">92.16% <small>(47 / 51)</small></span>
Branches: <span class="metric">80.95% <small>(17 / 21)</small></span>
Functions: <span class="metric">100% <small>(4 / 4)</small></span>
Lines: <span class="metric">92.16% <small>(47 / 51)</small></span>
Ignored: <span class="metric"><span class="ignore-none">none</span></span>
</h2>
<div class="path"><a href="../index.html">All files</a> » <a href="index.html">lib/</a> » analyse.js</div>
</div>
<div class="body">
<pre><table class="coverage">
<tr><td class="line-count">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125</td><td class="line-coverage"><span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">7</span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">2</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">2</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">10</span>
<span class="cline-any cline-yes">10</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">9</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-no"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">2</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3</span>
<span class="cline-any cline-yes">3</span>
<span class="cline-any cline-yes">3</span>
<span class="cline-any cline-yes">3</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-yes">6</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
* @file 分析有 diff 的行
* @author chris<wfsr@foxmail.com>
*/
/**
* 新文件的标志
*
* @const
* @type {string}
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var NEW_FILE_MODE = 'new file mode';
/**
* 匹配 diff 中的行数的正则
*
* @const
* @type {RegExp}
*/
var CHANGED_LINE_REG = /^@@ \-\d+,\d+ \+(\d+),(\d+) @@/;
/**
* 是否新增文件
*
* @param {string} diffs diff 输出的字符
* @return {boolean} 是否新增加文件的结果
*/
var isNewFile = function isNewFile(diffs) {
var secondLine = diffs.indexOf('\n');
return diffs.substr(secondLine + 1, NEW_FILE_MODE.length) === NEW_FILE_MODE;
};
/**
* 从 diff 输出中解释出有改变的行数及适用于 `fecs --lines` 过滤的 range
*
* @param {string} diffs diff 的输出字符
* @param {boolean} isNew 是否新文件
* @return {Object} 包含变更行数 lines 及 range 的对象
*/
function parse(diffs, isNew) {
diffs = diffs.slice(diffs.indexOf('@@')).split(/\r?\n/);
var lines = 0;
var range = [];
var line = undefined;
var index = undefined;
var last = undefined;
var section = undefined;
function push() {
if (!section || !section[0]) {
return;
}
if (section[1]) {
<span class="missing-if-branch" title="else path not taken" >E</span>if (section[1] - section[0] < 2) {
range.push(section[0]);
range.push(section[1]);
} else {
<span class="cstat-no" title="statement not covered" > range.push('[' + section + ']');</span>
}
} else {
range.push(section[0]);
}
section.length = 0;
}
while ((line = diffs.shift()) != null) {
var match = line.match(CHANGED_LINE_REG);
if (match) {
<span class="missing-if-branch" title="if path not taken" >I</span>if (isNew) {
<span class="cstat-no" title="statement not covered" > lines = match[2] | 0;</span>
<span class="cstat-no" title="statement not covered" > break;</span>
}
index = match[1] | 0;
} else {
switch (line[0]) {
<span class="branch-0 cbranch-no" title="branch not covered" > case '-':</span>
<span class="cstat-no" title="statement not covered" > break;</span>
case '+':
if (last) {
section[1] = index + '';
} else {
section = [index + ''];
}
last = index;
lines++;
index++;
break;
default:
index++;
last = 0;
push();
break;
}
}
}
<span class="missing-if-branch" title="else path not taken" >E</span>if (section && section.length) {
push();
}
return { lines: lines, range: range };
}
/**
* 从 diff 输出中分析
*
* @param {string} diffs diff 的输出
* @return {Object} 包含变更行数 lines 及 range 的对象
*/
exports['default'] = function (diffs) {
var isNew = isNewFile(diffs);
return parse(diffs, isNew);
};
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,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QUFDO0FBQ1Isd0JBQUksR0FBRyxDQUFDLENBQUM7QUFDVCx3QkFBSSxFQUFFLENBQUM7QUFDUCwwQkFBTTtBQUFBLGFBQ2I7U0FDSjtLQUNKOztBQUVELFFBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7QUFDM0IsWUFBSSxFQUFFLENBQUM7S0FDVjs7QUFFRCxXQUFPLEVBQUMsS0FBSyxFQUFMLEtBQUssRUFBRSxLQUFLLEVBQUwsS0FBSyxFQUFDLENBQUM7Q0FFekI7Ozs7Ozs7OztxQkFRYyxVQUFVLEtBQUssRUFBRTtBQUM1QixRQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0IsV0FBTyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0NBQzlCIiwiZmlsZSI6ImFuYWx5c2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIOWIhuaekOaciSBkaWZmIOeahOihjFxuICogQGF1dGhvciBjaHJpczx3ZnNyQGZveG1haWwuY29tPlxuICovXG5cbi8qKlxuICog5paw5paH5Lu255qE5qCH5b+XXG4gKlxuICogQGNvbnN0XG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5jb25zdCBORVdfRklMRV9NT0RFID0gJ25ldyBmaWxlIG1vZGUnO1xuXG4vKipcbiAqIOWMuemFjSBkaWZmIOS4reeahOihjOaVsOeahOato+WImVxuICpcbiAqIEBjb25zdFxuICogQHR5cGUge1JlZ0V4cH1cbiAqL1xuY29uc3QgQ0hBTkdFRF9MSU5FX1JFRyA9IC9eQEAgXFwtXFxkKyxcXGQrIFxcKyhcXGQrKSwoXFxkKykgQEAvO1xuXG4vKipcbiAqIOaYr+WQpuaWsOWinuaWh+S7tlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkaWZmcyBkaWZmIOi+k+WHuueahOWtl+esplxuICogQHJldHVybiB7Ym9vbGVhbn0gIOaYr+WQpuaWsOWinuWKoOaWh+S7tueahOe7k+aenFxuICovXG5sZXQgaXNOZXdGaWxlID0gZnVuY3Rpb24gKGRpZmZzKSB7XG4gICAgbGV0IHNlY29uZExpbmUgPSBkaWZmcy5pbmRleE9mKCdcXG4nKTtcbiAgICByZXR1cm4gZGlmZnMuc3Vic3RyKHNlY29uZExpbmUgKyAxLCBORVdfRklMRV9NT0RFLmxlbmd0aCkgPT09IE5FV19GSUxFX01PREU7XG59O1xuXG4vKipcbiAqIOS7jiBkaWZmIOi+k+WHuuS4reino+mHiuWHuuacieaUueWPmOeahOihjOaVsOWPiumAgueUqOS6jiBgZmVjcyAtLWxpbmVzYCDov4fmu6TnmoQgcmFuZ2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlmZnMgIGRpZmYg55qE6L6T5Ye65a2X56ymXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3IOaYr+WQpuaWsOaWh+S7tlxuICogQHJldHVybiB7T2JqZWN0fSDljIXlkKvlj5jmm7TooYzmlbAgbGluZXMg5Y+KIHJhbmdlIOeahOWvueixoVxuICovXG5mdW5jdGlvbiBwYXJzZShkaWZmcywgaXNOZXcpIHtcbiAgICBkaWZmcyA9IGRpZmZzLnNsaWNlKGRpZmZzLmluZGV4T2YoJ0BAJykpLnNwbGl0KC9cXHI/XFxuLyk7XG5cbiAgICBsZXQgbGluZXMgPSAwO1xuICAgIGxldCByYW5nZSA9IFtdO1xuICAgIGxldCBsaW5lO1xuICAgIGxldCBpbmRleDtcbiAgICBsZXQgbGFzdDtcbiAgICBsZXQgc2VjdGlvbjtcblxuICAgIGZ1bmN0aW9uIHB1c2goKSB7XG4gICAgICAgIGlmICghc2VjdGlvbiB8fCAhc2VjdGlvblswXSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlY3Rpb25bMV0pIHtcbiAgICAgICAgICAgIGlmIChzZWN0aW9uWzFdIC0gc2VjdGlvblswXSA8IDIpIHtcbiAgICAgICAgICAgICAgICByYW5nZS5wdXNoKHNlY3Rpb25bMF0pO1xuICAgICAgICAgICAgICAgIHJhbmdlLnB1c2goc2VjdGlvblsxXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByYW5nZS5wdXNoKCdbJyArIHNlY3Rpb24gKyAnXScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmFuZ2UucHVzaChzZWN0aW9uWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlY3Rpb24ubGVuZ3RoID0gMDtcbiAgICB9XG5cbiAgICB3aGlsZSAoKGxpbmUgPSBkaWZmcy5zaGlmdCgpKSAhPSBudWxsKSB7XG4gICAgICAgIHZhciBtYXRjaCA9IGxpbmUubWF0Y2goQ0hBTkdFRF9MSU5FX1JFRyk7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgaWYgKGlzTmV3KSB7XG4gICAgICAgICAgICAgICAgbGluZXMgPSBtYXRjaFsyXSB8IDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleCA9IG1hdGNoWzFdIHwgMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAobGluZVswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25bMV0gPSBpbmRleCArICcnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbiA9IFtpbmRleCArICcnXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsYXN0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzKys7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgPSAwO1xuICAgICAgICAgICAgICAgICAgICBwdXNoKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNlY3Rpb24gJiYgc2VjdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgcHVzaCgpO1xuICAgIH1cblxuICAgIHJldHVybiB7bGluZXMsIHJhbmdlfTtcblxufVxuXG4vKipcbiAqIOS7jiBkaWZmIOi+k+WHuuS4reWIhuaekFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkaWZmcyBkaWZmIOeahOi+k+WHulxuICogQHJldHVybiB7T2JqZWN0fSDljIXlkKvlj5jmm7TooYzmlbAgbGluZXMg5Y+KIHJhbmdlIOeahOWvueixoVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoZGlmZnMpIHtcbiAgICBsZXQgaXNOZXcgPSBpc05ld0ZpbGUoZGlmZnMpO1xuICAgIHJldHVybiBwYXJzZShkaWZmcywgaXNOZXcpO1xufVxuIl19</pre></td></tr>
</table></pre>
</div>
<div class="footer">
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Sep 17 2015 10:53:44 GMT+0800 (CST)</div>
</div>
<script src="../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../sorter.js"></script>
</body>
</html>