config.php
Current file: src/processor/config.php
Legend: executed not executed dead code

  Coverage
  Classes Functions / Methods Lines
Total
0.00% 0 / 1
11.11% 1 / 9 CRAP
2.78% 1 / 36
Config
0.00% 0 / 1
11.11% 1 / 9 221.77
2.78% 1 / 36
 load($filename)
0.00% 0 / 1 56
0.00% 0 / 28
 getProjectName()
100.00% 1 / 1 1
100.00% 1 / 1
 getProjectCode()
0.00% 0 / 1 2
0.00% 0 / 1
 getLicenseText()
0.00% 0 / 1 2
0.00% 0 / 1
 getTransformers()
0.00% 0 / 1 2
0.00% 0 / 1
 getOutputters()
0.00% 0 / 1 2
0.00% 0 / 1
 getBaseDirectory()
0.00% 0 / 1 2
0.00% 0 / 1
 getExcludeDirectories()
0.00% 0 / 1 2
0.00% 0 / 1
 getDocsDirectory()
0.00% 0 / 1 2
0.00% 0 / 1


       1                 : <?php                                                                                                         
       2                 : /*                                                                                                            
       3                 : Copyright 2015 Josh Heidenreich                                                                               
       4                 :                                                                                                               
       5                 : This file is part of Pelzini.                                                                                 
       6                 :                                                                                                               
       7                 : Pelzini is free software: you can redistribute it and/or modify                                               
       8                 : it under the terms of the GNU General Public License as published by                                          
       9                 : the Free Software Foundation, either version 3 of the License, or                                             
      10                 : (at your option) any later version.                                                                           
      11                 :                                                                                                               
      12                 : Pelzini is distributed in the hope that it will be useful,                                                    
      13                 : but WITHOUT ANY WARRANTY; without even the implied warranty of                                                
      14                 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                 
      15                 : GNU General Public License for more details.                                                                  
      16                 :                                                                                                               
      17                 : You should have received a copy of the GNU General Public License                                             
      18                 : along with Pelzini.  If not, see <http://www.gnu.org/licenses/>.                                              
      19                 : */                                                                                                            
      20                 :                                                                                                               
      21                 :                                                                                                               
      22                 : /**                                                                                                           
      23                 :  * Contains the {@link Config} class                                                                          
      24                 :  *                                                                                                            
      25                 :  * @package Processor                                                                                         
      26                 :  * @author Josh Heidenreich                                                                                   
      27                 :  * @since 0.4                                                                                                 
      28                 :  **/                                                                                                          
      29                 :                                                                                                               
      30                 : /**                                                                                                           
      31                 :  * Stores the processor configuration                                                                         
      32                 :  **/                                                                                                          
      33                 : class Config {                                                                                                
      34                 :     protected $project_name;                                                                                  
      35                 :     protected $project_code;                                                                                  
      36                 :     protected $license_text;                                                                                  
      37                 :     protected $transformers = array();                                                                        
      38                 :     protected $outputters = array();                                                                          
      39                 :     protected $base_directory;                                                                                
      40                 :     protected $exclude_directories = array();                                                                 
      41                 :     protected $docs_directory;                                                                                
      42                 :                                                                                                               
      43                 :                                                                                                               
      44                 :     /**                                                                                                       
      45                 :     * Load and validate a config file                                                                         
      46                 :     *                                                                                                         
      47                 :     * @param string $filename The filename to load                                                            
      48                 :     * @return bool True on success, false on failure                                                          
      49                 :     **/                                                                                                       
      50                 :     public function load($filename) {                                                                         
      51               0 :         $dpgOutputters = array();                                                                             
      52               0 :         $dpgTransformers = array();                                                                           
      53                 :                                                                                                               
      54               0 :         require $filename;                                                                                    
      55                 :                                                                                                               
      56               0 :         if (!isset($dpgProjectName)) {                                                                        
      57               0 :             echo "ERROR:\nRequired config option '\$dpgProjectName' not set.\n";                              
      58               0 :             return false;                                                                                     
      59                 :         }                                                                                                     
      60                 :                                                                                                               
      61               0 :         if (!isset($dpgProjectCode)) {                                                                        
      62               0 :             echo "ERROR:\nRequired config option '\$dpgProjectCode' not set.\n";                              
      63               0 :             return false;                                                                                     
      64                 :         }                                                                                                     
      65                 :                                                                                                               
      66                 :         // Don't allow chars which will mess up the friendly urls.                                            
      67               0 :         if (preg_match('/[^-_A-Za-z0-9]/', $dpgProjectCode)) {                                                
      68               0 :             echo "ERROR:\nInvalid characters for '\$dpgProjectCode' specified.\n";                            
      69               0 :             echo "Valid characters are A-Z, a-z, 0-9, dash and underscore.\n";                                
      70               0 :             return false;                                                                                     
      71                 :         }                                                                                                     
      72                 :                                                                                                               
      73               0 :         if (@count($dpgOutputters) == 0) {                                                                    
      74               0 :             echo "ERROR:\nRequired config option '\$dpgOutputters' not set.\n";                               
      75               0 :             return false;                                                                                     
      76                 :         }                                                                                                     
      77                 :                                                                                                               
      78               0 :         if (!$dpgBaseDirectory or !file_exists($dpgBaseDirectory)) {                                          
      79               0 :             echo "ERROR:\nRequired config option '\$dpgBaseDirectory' not set or directory does not exist.\n";
      80               0 :             return false;                                                                                     
      81                 :         }                                                                                                     
      82                 :                                                                                                               
      83               0 :         $this->project_name = $dpgProjectName;                                                                
      84               0 :         $this->project_code = $dpgProjectCode;                                                                
      85               0 :         $this->license_text = $dpgLicenseText;                                                                
      86               0 :         $this->transformers = $dpgTransformers;                                                               
      87               0 :         $this->outputters = $dpgOutputters;                                                                   
      88               0 :         $this->base_directory = $dpgBaseDirectory;                                                            
      89               0 :         $this->exclude_directories = $dpgExcludeDirectories;                                                  
      90               0 :         $this->docs_directory = $dpgDocsDirectory;                                                            
      91                 :                                                                                                               
      92               0 :         return true;                                                                                          
      93                 :     }                                                                                                         
      94                 :                                                                                                               
      95                 :                                                                                                               
      96                 :     /**                                                                                                       
      97                 :     * @return string The name of the project                                                                  
      98                 :     **/                                                                                                       
      99                 :     public function getProjectName() {                                                                        
     100               1 :         return $this->project_name;                                                                           
     101                 :     }                                                                                                         
     102                 :                                                                                                               
     103                 :                                                                                                               
     104                 :     /**                                                                                                       
     105                 :     * @return string The project code, to allow for multiple projects per db                                  
     106                 :     **/                                                                                                       
     107                 :     public function getProjectCode() {                                                                        
     108               0 :         return $this->project_code;                                                                           
     109                 :     }                                                                                                         
     110                 :                                                                                                               
     111                 :                                                                                                               
     112                 :     /**                                                                                                       
     113                 :     * @return string The license text to show in the viewer                                                   
     114                 :     **/                                                                                                       
     115                 :     public function getLicenseText() {                                                                        
     116               0 :         return $this->license_text;                                                                           
     117                 :     }                                                                                                         
     118                 :                                                                                                               
     119                 :                                                                                                               
     120                 :     /**                                                                                                       
     121                 :     * @return array Transformer classes                                                                       
     122                 :     **/                                                                                                       
     123                 :     public function getTransformers() {                                                                       
     124               0 :         return $this->transformers;                                                                           
     125                 :     }                                                                                                         
     126                 :                                                                                                               
     127                 :                                                                                                               
     128                 :     /**                                                                                                       
     129                 :     * @return array Outputter classes                                                                         
     130                 :     **/                                                                                                       
     131                 :     public function getOutputters() {                                                                         
     132               0 :         return $this->outputters;                                                                             
     133                 :     }                                                                                                         
     134                 :                                                                                                               
     135                 :                                                                                                               
     136                 :     /**                                                                                                       
     137                 :     * @return string The base directory for indexing                                                          
     138                 :     **/                                                                                                       
     139                 :     public function getBaseDirectory() {                                                                      
     140               0 :         return $this->base_directory;                                                                         
     141                 :     }                                                                                                         
     142                 :                                                                                                               
     143                 :                                                                                                               
     144                 :     /**                                                                                                       
     145                 :     * @return string The base directory for indexing                                                          
     146                 :     **/                                                                                                       
     147                 :     public function getExcludeDirectories() {                                                                 
     148               0 :         return $this->exclude_directories;                                                                    
     149                 :     }                                                                                                         
     150                 :                                                                                                               
     151                 :                                                                                                               
     152                 :     /**                                                                                                       
     153                 :     * @return string The directory containing documentation                                                   
     154                 :     **/                                                                                                       
     155                 :     public function getDocsDirectory() {                                                                      
     156               0 :         return $this->docs_directory;                                                                         
     157                 :     }                                                                                                         
     158                 :                                                                                                               
     159                 : }                                                                                                             

Generated by PHP_CodeCoverage 1.1.2 using PHP 5.4.39-0+deb7u2 and PHPUnit 3.6.10 at Fri Sep 11 11:35:19 WIT 2015.