/** * @param PHP_CodeCoverage_Report_Node_Directory $node * @param string $file * @param string $title */ public function render(PHP_CodeCoverage_Report_Node_Directory $node, $file, $title = NULL) { if ($title === NULL) { $title = $node->getName(); } $classes = array_merge($node->getClasses(), $node->getTraits()); $template = new Text_Template($this->templatePath . 'dashboard.html'); $this->setCommonTemplateVariables($template, $title); $template->setVar(array('least_tested_methods' => $this->leastTestedMethods($classes), 'top_project_risks' => $this->topProjectRisks($classes), 'cc_values' => $this->classComplexity($classes), 'ccd_values' => $this->classCoverageDistribution($classes), 'backlink' => basename(str_replace('.dashboard', '', $file)))); $template->renderTo($file); }
private function processDirectory(PHP_CodeCoverage_Report_Node_Directory $directory, PHP_CodeCoverage_Report_XML_Node $context) { $dirObject = $context->addDirectory($directory->getName()); $this->setTotals($directory, $dirObject->getTotals()); foreach ($directory as $node) { if ($node instanceof PHP_CodeCoverage_Report_Node_Directory) { $this->processDirectory($node, $dirObject); continue; } if ($node instanceof PHP_CodeCoverage_Report_Node_File) { $this->processFile($node, $dirObject); continue; } throw new PHP_CodeCoverage_Exception('Unknown node type for XML report'); } }
/** * @param PHP_CodeCoverage_Report_Node_Directory $node * @param string $file * @param string $title */ public function render(PHP_CodeCoverage_Report_Node_Directory $node, $file, $title = NULL) { if ($title === NULL) { $title = $node->getName(); } $template = new Text_Template($this->templatePath . 'directory.html'); $this->setCommonTemplateVariables($template, $title, $node); $items = $this->renderItem($node, TRUE); foreach ($node->getDirectories() as $item) { $items .= $this->renderItem($item); } foreach ($node->getFiles() as $item) { $items .= $this->renderItem($item); } $template->setVar(array('id' => $node->getId(), 'items' => $items)); $template->renderTo($file); }