Merge 4de3006ea6
into 64b0f60368
This commit is contained in:
commit
aa4e394aef
|
@ -167,6 +167,7 @@ PHPCI',
|
|||
|
||||
'chart_display' => 'This chart will display once the build has completed.',
|
||||
|
||||
'structure' => 'Structure',
|
||||
'build' => 'Build',
|
||||
'lines' => 'Lines',
|
||||
'comment_lines' => 'Comment Lines',
|
||||
|
|
|
@ -158,6 +158,7 @@ PHPCI',
|
|||
|
||||
'chart_display' => 'Этот график будет показан после окончания сборки.',
|
||||
|
||||
'structure' => 'Структура',
|
||||
'build' => 'Сборка',
|
||||
'lines' => 'Строк',
|
||||
'comment_lines' => 'Строк комментариев',
|
||||
|
|
|
@ -15,6 +15,7 @@ use PHPCI\Model\Build;
|
|||
|
||||
/**
|
||||
* PHP Loc - Allows PHP Copy / Lines of Code testing.
|
||||
*
|
||||
* @author Johan van der Heide <info@japaveh.nl>
|
||||
* @package PHPCI
|
||||
* @subpackage Plugins
|
||||
|
@ -30,11 +31,18 @@ class PhpLoc implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
|||
*/
|
||||
protected $phpci;
|
||||
|
||||
/**
|
||||
* @var Build
|
||||
*/
|
||||
protected $build;
|
||||
|
||||
/**
|
||||
* Check if this plugin can be executed.
|
||||
* @param $stage
|
||||
*
|
||||
* @param $stage
|
||||
* @param Builder $builder
|
||||
* @param Build $build
|
||||
* @param Build $build
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function canExecute($stage, Builder $builder, Build $build)
|
||||
|
@ -48,14 +56,15 @@ class PhpLoc implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
|||
|
||||
/**
|
||||
* Set up the plugin, configure options, etc.
|
||||
*
|
||||
* @param Builder $phpci
|
||||
* @param Build $build
|
||||
* @param array $options
|
||||
* @param Build $build
|
||||
* @param array $options
|
||||
*/
|
||||
public function __construct(Builder $phpci, Build $build, array $options = array())
|
||||
{
|
||||
$this->phpci = $phpci;
|
||||
$this->build = $build;
|
||||
$this->phpci = $phpci;
|
||||
$this->build = $build;
|
||||
$this->directory = $phpci->buildPath;
|
||||
|
||||
if (isset($options['directory'])) {
|
||||
|
@ -82,17 +91,30 @@ class PhpLoc implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
|||
$phploc = $this->phpci->findBinary('phploc');
|
||||
|
||||
$success = $this->phpci->executeCommand($phploc . ' %s "%s"', $ignore, $this->directory);
|
||||
$output = $this->phpci->getLastOutput();
|
||||
$output = $this->phpci->getLastOutput();
|
||||
|
||||
if (preg_match_all('/\((LOC|CLOC|NCLOC|LLOC)\)\s+([0-9]+)/', $output, $matches)) {
|
||||
if (preg_match_all('/\((LOC|CLOC|NCLOC|LLOC)\)\s+([0-9]+)/', $output, $matches2)) {
|
||||
$data = array();
|
||||
foreach ($matches[1] as $k => $v) {
|
||||
$data[$v] = (int)$matches[2][$k];
|
||||
foreach ($matches2[1] as $k => $v) {
|
||||
$data[$v] = (int) $matches2[2][$k];
|
||||
}
|
||||
|
||||
$this->build->storeMeta('phploc', $data);
|
||||
}
|
||||
|
||||
if (preg_match_all('/(Namespaces|Interfaces|Classes|Methods)\s+([0-9]+)/', $output, $matches)) {
|
||||
$key = $matches[1];
|
||||
$val = $matches[2];
|
||||
$data = array(
|
||||
$key[1] => (int) $val[1],
|
||||
$key[2] => (int) $val[2],
|
||||
$key[3] => (int) $val[3],
|
||||
$key[6] => (int) $val[6],
|
||||
);
|
||||
|
||||
$this->build->storeMeta('phploc-structure', $data);
|
||||
}
|
||||
|
||||
return $success;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
var locPlugin = ActiveBuild.UiPlugin.extend({
|
||||
id: 'build-lines-chart',
|
||||
css: 'col-xs-12',
|
||||
css: 'col-xs-6',
|
||||
title: Lang.get('lines_of_code'),
|
||||
lastData: null,
|
||||
displayOnUpdate: false,
|
||||
|
|
106
public/assets/js/build-plugins/loc2.js
Normal file
106
public/assets/js/build-plugins/loc2.js
Normal file
|
@ -0,0 +1,106 @@
|
|||
var locPlugin2 = ActiveBuild.UiPlugin.extend({
|
||||
id: 'build-lines-chart-structure',
|
||||
css: 'col-xs-6',
|
||||
title: Lang.get('structure'),
|
||||
lastData: null,
|
||||
displayOnUpdate: false,
|
||||
rendered: false,
|
||||
chartData: null,
|
||||
|
||||
register: function() {
|
||||
var self = this;
|
||||
var query = ActiveBuild.registerQuery('phploc-structure', -1, {num_builds: 10, key: 'phploc-structure'})
|
||||
|
||||
$(window).on('phploc-structure', function(data) {
|
||||
self.onUpdate(data);
|
||||
});
|
||||
|
||||
$(window).on('build-updated', function(data) {
|
||||
if (data.queryData.status > 1 && !self.rendered) {
|
||||
query();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
render: function() {
|
||||
var self = this;
|
||||
var container = $('<div id="phploc-structure" style="width: 100%; height: 300px"></div>');
|
||||
container.append('<canvas id="phploc-structure-chart" style="width: 100%; height: 300px"></canvas>');
|
||||
|
||||
$(document).on('shown.bs.tab', function () {
|
||||
$('#build-lines-chart-structure').hide();
|
||||
self.drawChart();
|
||||
});
|
||||
|
||||
return container;
|
||||
},
|
||||
|
||||
onUpdate: function(e) {
|
||||
this.lastData = e.queryData;
|
||||
this.displayChart();
|
||||
},
|
||||
|
||||
displayChart: function() {
|
||||
var self = this;
|
||||
var builds = this.lastData;
|
||||
self.rendered = true;
|
||||
|
||||
self.chartData = {
|
||||
labels: [],
|
||||
datasets: [
|
||||
{
|
||||
label: "Namespaces",
|
||||
strokeColor: "rgba(60,141,188,1)",
|
||||
pointColor: "rgba(60,141,188,1)",
|
||||
data: []
|
||||
},
|
||||
{
|
||||
label: "Interfaces",
|
||||
strokeColor: "rgba(245,105,84,1)",
|
||||
pointColor: "rgba(245,105,84,1)",
|
||||
data: []
|
||||
},
|
||||
{
|
||||
label: "Classes",
|
||||
strokeColor: "rgba(0,166,90,1)",
|
||||
pointColor: "rgba(0,166,90,1)",
|
||||
data: []
|
||||
},
|
||||
{
|
||||
label: "Methods",
|
||||
strokeColor: "rgba(0,192,239,1)",
|
||||
pointColor: "rgba(0,192,239,1)",
|
||||
data: []
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
for (var i in builds) {
|
||||
self.chartData.labels.push('Build ' + builds[i].build_id);
|
||||
self.chartData.datasets[0].data.push(builds[i].meta_value.Namespaces);
|
||||
self.chartData.datasets[1].data.push(builds[i].meta_value.Interfaces);
|
||||
self.chartData.datasets[2].data.push(builds[i].meta_value.Classes);
|
||||
self.chartData.datasets[3].data.push(builds[i].meta_value.Methods);
|
||||
}
|
||||
|
||||
self.drawChart();
|
||||
},
|
||||
|
||||
drawChart: function () {
|
||||
var self = this;
|
||||
|
||||
if ($('#information').hasClass('active') && self.chartData && self.lastData) {
|
||||
$('#build-lines-chart-structure').show();
|
||||
|
||||
var ctx = $("#phploc-structure-chart").get(0).getContext("2d");
|
||||
var phpLocChart = new Chart(ctx);
|
||||
|
||||
phpLocChart.Line(self.chartData, {
|
||||
datasetFill: false,
|
||||
multiTooltipTemplate: "<%=datasetLabel%>: <%= value %>"
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
ActiveBuild.registerPlugin(new locPlugin2());
|
|
@ -1,6 +1,6 @@
|
|||
var SummaryPlugin = ActiveBuild.UiPlugin.extend({
|
||||
id: 'build-summary',
|
||||
css: 'col-xs-12',
|
||||
css: 'col-xs-6',
|
||||
title: Lang.get('build-summary'),
|
||||
box: true,
|
||||
statusIcons: [ 'fa-clock-o', 'fa-cogs', 'fa-check', 'fa-remove' ],
|
||||
|
|
Loading…
Reference in a new issue