diff --git a/Autoload.php.html b/Autoload.php.html index 6a016d1..748604a 100644 --- a/Autoload.php.html +++ b/Autoload.php.html @@ -42,23 +42,23 @@ - Total -
-
- 69.84% covered (warning) + Total +
+
+ 0.00% covered (danger)
-
69.84%
-
44 / 63
+
0.00%
+
0 / 63
-
- 40.00% covered (danger) +
+ 0.00% covered (danger)
-
40.00%
-
2 / 5
+
0.00%
+
0 / 5
CRAP
@@ -71,24 +71,24 @@ - Autoload -
-
- 69.84% covered (warning) + Autoload +
+
+ 0.00% covered (danger)
-
69.84%
-
44 / 63
+
0.00%
+
0 / 63
-
- 40.00% covered (danger) +
+ 0.00% covered (danger)
-
40.00%
-
2 / 5
- 21.17 +
0.00%
+
0 / 5
+ 240
0.00% covered (danger) @@ -100,37 +100,37 @@ -  __construct -
-
- 100.00% covered (success) +  __construct +
+
+ 0.00% covered (danger)
-
100.00%
-
4 / 4
-
-
- 100.00% covered (success) +
0.00%
+
0 / 4
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  generate -
-
- 71.43% covered (warning) +  generate +
+
+ 0.00% covered (danger)
-
71.43%
-
5 / 7
+
0.00%
+
0 / 7
0.00% covered (danger) @@ -139,20 +139,20 @@
0.00%
0 / 1
- 3.21 + 12 -  generateClassmap -
-
- 96.55% covered (success) +  generateClassmap +
+
+ 0.00% covered (danger)
-
96.55%
-
28 / 29
+
0.00%
+
0 / 29
0.00% covered (danger) @@ -161,20 +161,20 @@
0.00%
0 / 1
- 4 + 20  generateFilesAutoloader
-
- 20.00% covered (danger) +
+ 0.00% covered (danger)
-
20.00%
-
4 / 20
+
0.00%
+
0 / 20
0.00% covered (danger) @@ -183,30 +183,30 @@
0.00%
0 / 1
- 24.43 + 42 -  generateAutoloadPhp -
-
- 100.00% covered (success) +  generateAutoloadPhp +
+
+ 0.00% covered (danger)
-
100.00%
-
3 / 3
-
-
- 100.00% covered (success) +
0.00%
+
0 / 3
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -255,32 +255,32 @@ 38     */ 39    public function __construct(StraussConfig $config, string $workingDir, array $discoveredFilesAutoloaders) 40    { - 41        $this->config = $config; - 42        $this->workingDir = $workingDir; - 43        $this->discoveredFilesAutoloaders = $discoveredFilesAutoloaders; + 41        $this->config = $config; + 42        $this->workingDir = $workingDir; + 43        $this->discoveredFilesAutoloaders = $discoveredFilesAutoloaders; 44 - 45        $this->filesystem = new Filesystem(new LocalFilesystemAdapter($workingDir)); + 45        $this->filesystem = new Filesystem(new LocalFilesystemAdapter($workingDir)); 46    } 47 48    public function generate(): void 49    { 50        // Do not overwrite Composer's autoload.php. 51        // The correct solution is to add "classmap": ["vendor"] to composer.json, then run composer dump-autoload. - 52        if ($this->config->getTargetDirectory() === $this->config->getVendorDirectory()) { + 52        if ($this->config->getTargetDirectory() === $this->config->getVendorDirectory()) { 53            return; 54        } 55 - 56        if (! $this->config->isClassmapOutput()) { + 56        if (! $this->config->isClassmapOutput()) { 57            return; 58        } 59 60        // TODO Don't do this if vendor is the target dir (i.e. in-situ updating). 61 - 62        $this->generateClassmap(); + 62        $this->generateClassmap(); 63 - 64        $this->generateFilesAutoloader(); + 64        $this->generateFilesAutoloader(); 65 - 66        $this->generateAutoloadPhp(); + 66        $this->generateAutoloadPhp(); 67    } 68 69    /** @@ -295,46 +295,46 @@ 78    { 79 80        // Hyphen used to match WordPress Coding Standards. - 81        $output_filename = "autoload-classmap.php"; + 81        $output_filename = "autoload-classmap.php"; 82 - 83        $targetDirectory = getcwd() - 84            . DIRECTORY_SEPARATOR - 85            . ltrim($this->config->getTargetDirectory(), DIRECTORY_SEPARATOR); + 83        $targetDirectory = getcwd() + 84            . DIRECTORY_SEPARATOR + 85            . ltrim($this->config->getTargetDirectory(), DIRECTORY_SEPARATOR); 86 - 87        $dirs = array( - 88            $targetDirectory - 89        ); + 87        $dirs = array( + 88            $targetDirectory + 89        ); 90 - 91        foreach ($dirs as $dir) { - 92            if (!is_dir($dir)) { + 91        foreach ($dirs as $dir) { + 92            if (!is_dir($dir)) { 93                continue; 94            } 95 - 96            $dirMap = ClassMapGenerator::createMap($dir); + 96            $dirMap = ClassMapGenerator::createMap($dir); 97 - 98            array_walk( - 99                $dirMap, - 100                function (&$filepath, $_class) use ($dir) { - 101                    $filepath = "\$strauss_src . '" - 102                        . DIRECTORY_SEPARATOR - 103                        . ltrim(str_replace($dir, '', $filepath), DIRECTORY_SEPARATOR) . "'"; - 104                } - 105            ); + 98            array_walk( + 99                $dirMap, + 100                function (&$filepath, $_class) use ($dir) { + 101                    $filepath = "\$strauss_src . '" + 102                        . DIRECTORY_SEPARATOR + 103                        . ltrim(str_replace($dir, '', $filepath), DIRECTORY_SEPARATOR) . "'"; + 104                } + 105            ); 106 - 107            ob_start(); + 107            ob_start(); 108 - 109            echo "<?php\n\n"; - 110            echo "// {$output_filename} @generated by Strauss\n\n"; - 111            echo "\$strauss_src = dirname(__FILE__);\n\n"; - 112            echo "return array(\n"; - 113            foreach ($dirMap as $class => $file) { + 109            echo "<?php\n\n"; + 110            echo "// {$output_filename} @generated by Strauss\n\n"; + 111            echo "\$strauss_src = dirname(__FILE__);\n\n"; + 112            echo "return array(\n"; + 113            foreach ($dirMap as $class => $file) { 114                // Always use `/` in paths. - 115                $file = str_replace(DIRECTORY_SEPARATOR, '/', $file); - 116                echo "   '{$class}' => {$file},\n"; + 115                $file = str_replace(DIRECTORY_SEPARATOR, '/', $file); + 116                echo "   '{$class}' => {$file},\n"; 117            } - 118            echo ");"; + 118            echo ");"; 119 - 120            file_put_contents($dir . $output_filename, ob_get_clean()); + 120            file_put_contents($dir . $output_filename, ob_get_clean()); 121        } 122    } 123 @@ -342,12 +342,12 @@ 125    { 126 127        // Hyphen used to match WordPress Coding Standards. - 128        $outputFilename = "autoload-files.php"; + 128        $outputFilename = "autoload-files.php"; 129 - 130        $filesAutoloaders = $this->discoveredFilesAutoloaders; + 130        $filesAutoloaders = $this->discoveredFilesAutoloaders; 131 - 132        if (empty($filesAutoloaders)) { - 133            return; + 132        if (empty($filesAutoloaders)) { + 133            return; 134        } 135 136        $targetDirectory = getcwd() @@ -404,10 +404,10 @@ 187} 188EOD; 189 - 190        $relativeFilepath = $this->config->getTargetDirectory() . 'autoload.php'; - 191        $absoluteFilepath = $this->workingDir . $relativeFilepath; + 190        $relativeFilepath = $this->config->getTargetDirectory() . 'autoload.php'; + 191        $absoluteFilepath = $this->workingDir . $relativeFilepath; 192 - 193        file_put_contents($absoluteFilepath, $autoloadPhp); + 193        file_put_contents($absoluteFilepath, $autoloadPhp); 194    } 195} @@ -420,7 +420,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/ChangeEnumerator.php.html b/ChangeEnumerator.php.html index 7e04ac7..a0475f3 100644 --- a/ChangeEnumerator.php.html +++ b/ChangeEnumerator.php.html @@ -44,13 +44,13 @@ Total
-
- 98.91% covered (success) +
+ 97.82% covered (success)
-
98.91%
-
363 / 367
+
97.82%
+
359 / 367
62.50% covered (warning) @@ -73,13 +73,13 @@ ChangeEnumerator
-
- 98.91% covered (success) +
+ 97.82% covered (success)
-
98.91%
-
363 / 367
+
97.82%
+
359 / 367
62.50% covered (warning) @@ -188,15 +188,15 @@ -  findInFiles -
-
- 92.31% covered (success) +  findInFiles +
+
+ 61.54% covered (warning)
-
92.31%
-
12 / 13
+
61.54%
+
8 / 13
0.00% covered (danger) @@ -205,7 +205,7 @@
0.00%
0 / 1
- 7.02 + 9.79 @@ -328,14 +328,14 @@ 45     */ 46    public function __construct(StraussConfig $config) 47    { - 48        $this->namespacePrefix = $config->getNamespacePrefix(); - 49        $this->classmapPrefix = $config->getClassmapPrefix(); + 48        $this->namespacePrefix = $config->getNamespacePrefix(); + 49        $this->classmapPrefix = $config->getClassmapPrefix(); 50 - 51        $this->excludePackagesFromPrefixing = $config->getExcludePackagesFromPrefixing(); - 52        $this->excludeNamespacesFromPrefixing = $config->getExcludeNamespacesFromPrefixing(); - 53        $this->excludeFilePatternsFromPrefixing = $config->getExcludeFilePatternsFromPrefixing(); + 51        $this->excludePackagesFromPrefixing = $config->getExcludePackagesFromPrefixing(); + 52        $this->excludeNamespacesFromPrefixing = $config->getExcludeNamespacesFromPrefixing(); + 53        $this->excludeFilePatternsFromPrefixing = $config->getExcludeFilePatternsFromPrefixing(); 54 - 55        $this->namespaceReplacementPatterns = $config->getNamespaceReplacementPatterns(); + 55        $this->namespaceReplacementPatterns = $config->getNamespaceReplacementPatterns(); 56    } 57 58    /** @@ -345,22 +345,22 @@ 62     */ 63    public function getDiscoveredNamespaces(?string $namespacePrefix = ''): array 64    { - 65        $discoveredNamespaceReplacements = []; + 65        $discoveredNamespaceReplacements = []; 66 67        // When running subsequent times, try to discover the original namespaces. 68        // This is naive: it will not work where namespace replacement patterns have been used. - 69        foreach ($this->discoveredNamespaces as $key => $value) { - 70            $unprefixed = str_starts_with($key, $this->namespacePrefix) + 69        foreach ($this->discoveredNamespaces as $key => $value) { + 70            $unprefixed = str_starts_with($key, $this->namespacePrefix) 71                ? ltrim(substr($key, strlen($this->namespacePrefix)), '\\') - 72                : $key; - 73            $discoveredNamespaceReplacements[ $unprefixed ] = $value; + 72                : $key; + 73            $discoveredNamespaceReplacements[ $unprefixed ] = $value; 74        } 75 - 76        uksort($discoveredNamespaceReplacements, function ($a, $b) { + 76        uksort($discoveredNamespaceReplacements, function ($a, $b) { 77            return strlen($a) <=> strlen($b); - 78        }); + 78        }); 79 - 80        return $discoveredNamespaceReplacements; + 80        return $discoveredNamespaceReplacements; 81    } 82 83    /** @@ -368,19 +368,19 @@ 85     */ 86    public function getDiscoveredClasses(?string $classmapPrefix = ''): array 87    { - 88        unset($this->discoveredClasses['ReturnTypeWillChange']); - 89        foreach ($this->getBuiltInClassnames() as $builtInClass) { - 90            unset($this->discoveredClasses[$builtInClass]); + 88        unset($this->discoveredClasses['ReturnTypeWillChange']); + 89        foreach ($this->getBuiltInClassnames() as $builtInClass) { + 90            unset($this->discoveredClasses[$builtInClass]); 91        } 92 - 93        $discoveredClasses = array_filter( - 94            array_keys($this->discoveredClasses), - 95            function (string $replacement) use ($classmapPrefix) { + 93        $discoveredClasses = array_filter( + 94            array_keys($this->discoveredClasses), + 95            function (string $replacement) use ($classmapPrefix) { 96                return empty($classmapPrefix) || ! str_starts_with($replacement, $classmapPrefix); - 97            } - 98        ); + 97            } + 98        ); 99 - 100        return $discoveredClasses; + 100        return $discoveredClasses; 101    } 102 103    /** @@ -388,14 +388,14 @@ 105     */ 106    public function getDiscoveredConstants(?string $constantsPrefix = ''): array 107    { - 108        $discoveredConstants = array_filter( - 109            array_keys($this->discoveredConstants), - 110            function (string $replacement) use ($constantsPrefix) { + 108        $discoveredConstants = array_filter( + 109            array_keys($this->discoveredConstants), + 110            function (string $replacement) use ($constantsPrefix) { 111                return empty($constantsPrefix) || ! str_starts_with($replacement, $constantsPrefix); - 112            } - 113        ); + 112            } + 113        ); 114 - 115        return $discoveredConstants; + 115        return $discoveredConstants; 116    } 117 118    /** @@ -404,31 +404,31 @@ 121     */ 122    public function findInFiles($absoluteTargetDir, $filesArray): void 123    { - 124        foreach ($filesArray as $relativeFilepath => $fileArray) { - 125            $package = $fileArray['dependency']; - 126            foreach ($this->excludePackagesFromPrefixing as $excludePackagesName) { + 124        foreach ($filesArray as $relativeFilepath => $fileArray) { + 125            $package = $fileArray['dependency']; + 126            foreach ($this->excludePackagesFromPrefixing as $excludePackagesName) { 127                if ($package->getPackageName() === $excludePackagesName) { 128                    continue 2; 129                } 130            } 131 - 132            foreach ($this->excludeFilePatternsFromPrefixing as $excludeFilePattern) { + 132            foreach ($this->excludeFilePatternsFromPrefixing as $excludeFilePattern) { 133                if (1 === preg_match($excludeFilePattern, $relativeFilepath)) { 134                    continue 2; 135                } 136            } 137 - 138            $filepath = $absoluteTargetDir . $relativeFilepath; + 138            $filepath = $absoluteTargetDir . $relativeFilepath; 139 140            // TODO: use flysystem 141            // $contents = $this->filesystem->read($targetFile); 142 - 143            $contents = file_get_contents($filepath); - 144            if (false === $contents) { + 143            $contents = file_get_contents($filepath); + 144            if (false === $contents) { 145                throw new \Exception("Failed to read file at {$filepath}"); 146            } 147 - 148            $this->find($contents); + 148            $this->find($contents); 149        } 150    } 151 @@ -446,14 +446,14 @@ 163        // If the entire file is under one namespace, all we want is the namespace. 164        // If there were more than one namespace, it would appear as `namespace MyNamespace { ...`, 165        // a file with only a single namespace will appear as `namespace MyNamespace;`. - 166        $singleNamespacePattern = '/ + 166        $singleNamespacePattern = '/ 167            (<?php|\r\n|\n)                                              # A new line or the beginning of the file. 168            \s*                                                          # Allow whitespace before 169            namespace\s+(?<namespace>[0-9A-Za-z_\x7f-\xff\\\\]+)[\s\S]*; # Match a single namespace in the file. - 170        /x'; //  # x: ignore whitespace in regex. - 171        if (1 === preg_match($singleNamespacePattern, $contents, $matches)) { - 172            $this->addDiscoveredNamespaceChange($matches['namespace']); - 173            return $contents; + 170        /x'; //  # x: ignore whitespace in regex. + 171        if (1 === preg_match($singleNamespacePattern, $contents, $matches)) { + 172            $this->addDiscoveredNamespaceChange($matches['namespace']); + 173            return $contents; 174        } 175 176        if (0 < preg_match_all('/\s*define\s*\(\s*["\']([^"\']*)["\']\s*,\s*["\'][^"\']*["\']\s*\)\s*;/', $contents, $constants)) { @@ -511,13 +511,13 @@ 228    protected function addDiscoveredNamespaceChange(string $namespace): void 229    { 230 - 231        foreach ($this->excludeNamespacesFromPrefixing as $excludeNamespace) { + 231        foreach ($this->excludeNamespacesFromPrefixing as $excludeNamespace) { 232            if (0 === strpos($namespace, $excludeNamespace)) { 233                return; 234            } 235        } 236 - 237        foreach ($this->namespaceReplacementPatterns as $namespaceReplacementPattern => $replacement) { + 237        foreach ($this->namespaceReplacementPatterns as $namespaceReplacementPattern => $replacement) { 238            $prefixed = preg_replace($namespaceReplacementPattern, $replacement, $namespace); 239 240            if ($prefixed !== $namespace) { @@ -526,7 +526,7 @@ 243            } 244        } 245 - 246        $this->discoveredNamespaces[$namespace] = $this->namespacePrefix . '\\'. $namespace; + 246        $this->discoveredNamespaces[$namespace] = $this->namespacePrefix . '\\'. $namespace; 247    } 248 249    /** @@ -553,296 +553,296 @@ 270     */ 271    protected function getBuiltInClassnames(): array 272    { - 273        return array_merge( - 274            ...array_values( - 275                [ - 276                    '7.4' => [ - 277                        'AppendIterator', - 278                        'ArgumentCountError', - 279                        'ArithmeticError', - 280                        'ArrayIterator', - 281                        'ArrayObject', - 282                        'AssertionError', - 283                        'BadFunctionCallException', - 284                        'BadMethodCallException', - 285                        'CURLFile', - 286                        'CachingIterator', - 287                        'CallbackFilterIterator', - 288                        'ClosedGeneratorException', - 289                        'Closure', - 290                        'Collator', - 291                        'CompileError', - 292                        'DOMAttr', - 293                        'DOMCdataSection', - 294                        'DOMCharacterData', - 295                        'DOMComment', - 296                        'DOMConfiguration', - 297                        'DOMDocument', - 298                        'DOMDocumentFragment', - 299                        'DOMDocumentType', - 300                        'DOMDomError', - 301                        'DOMElement', - 302                        'DOMEntity', - 303                        'DOMEntityReference', - 304                        'DOMErrorHandler', - 305                        'DOMException', - 306                        'DOMImplementation', - 307                        'DOMImplementationList', - 308                        'DOMImplementationSource', - 309                        'DOMLocator', - 310                        'DOMNameList', - 311                        'DOMNameSpaceNode', - 312                        'DOMNamedNodeMap', - 313                        'DOMNode', - 314                        'DOMNodeList', - 315                        'DOMNotation', - 316                        'DOMProcessingInstruction', - 317                        'DOMStringExtend', - 318                        'DOMStringList', - 319                        'DOMText', - 320                        'DOMTypeinfo', - 321                        'DOMUserDataHandler', - 322                        'DOMXPath', - 323                        'DateInterval', - 324                        'DatePeriod', - 325                        'DateTime', - 326                        'DateTimeImmutable', - 327                        'DateTimeZone', - 328                        'Directory', - 329                        'DirectoryIterator', - 330                        'DivisionByZeroError', - 331                        'DomainException', - 332                        'EmptyIterator', - 333                        'Error', - 334                        'ErrorException', - 335                        'Exception', - 336                        'FFI', - 337                        'FFI\CData', - 338                        'FFI\CType', - 339                        'FFI\Exception', - 340                        'FFI\ParserException', - 341                        'FilesystemIterator', - 342                        'FilterIterator', - 343                        'GMP', - 344                        'Generator', - 345                        'GlobIterator', - 346                        'HashContext', - 347                        'InfiniteIterator', - 348                        'IntlBreakIterator', - 349                        'IntlCalendar', - 350                        'IntlChar', - 351                        'IntlCodePointBreakIterator', - 352                        'IntlDateFormatter', - 353                        'IntlException', - 354                        'IntlGregorianCalendar', - 355                        'IntlIterator', - 356                        'IntlPartsIterator', - 357                        'IntlRuleBasedBreakIterator', - 358                        'IntlTimeZone', - 359                        'InvalidArgumentException', - 360                        'IteratorIterator', - 361                        'JsonException', - 362                        'LengthException', - 363                        'LibXMLError', - 364                        'LimitIterator', - 365                        'Locale', - 366                        'LogicException', - 367                        'MessageFormatter', - 368                        'MultipleIterator', - 369                        'NoRewindIterator', - 370                        'Normalizer', - 371                        'NumberFormatter', - 372                        'OutOfBoundsException', - 373                        'OutOfRangeException', - 374                        'OverflowException', - 375                        'PDO', - 376                        'PDOException', - 377                        'PDORow', - 378                        'PDOStatement', - 379                        'ParentIterator', - 380                        'ParseError', - 381                        'Phar', - 382                        'PharData', - 383                        'PharException', - 384                        'PharFileInfo', - 385                        'RangeException', - 386                        'RecursiveArrayIterator', - 387                        'RecursiveCachingIterator', - 388                        'RecursiveCallbackFilterIterator', - 389                        'RecursiveDirectoryIterator', - 390                        'RecursiveFilterIterator', - 391                        'RecursiveIteratorIterator', - 392                        'RecursiveRegexIterator', - 393                        'RecursiveTreeIterator', - 394                        'Reflection', - 395                        'ReflectionClass', - 396                        'ReflectionClassConstant', - 397                        'ReflectionException', - 398                        'ReflectionExtension', - 399                        'ReflectionFunction', - 400                        'ReflectionFunctionAbstract', - 401                        'ReflectionGenerator', - 402                        'ReflectionMethod', - 403                        'ReflectionNamedType', - 404                        'ReflectionObject', - 405                        'ReflectionParameter', - 406                        'ReflectionProperty', - 407                        'ReflectionReference', - 408                        'ReflectionType', - 409                        'ReflectionZendExtension', - 410                        'RegexIterator', - 411                        'ResourceBundle', - 412                        'RuntimeException', - 413                        'SQLite3', - 414                        'SQLite3Result', - 415                        'SQLite3Stmt', - 416                        'SessionHandler', - 417                        'SimpleXMLElement', - 418                        'SimpleXMLIterator', - 419                        'SoapClient', - 420                        'SoapFault', - 421                        'SoapHeader', - 422                        'SoapParam', - 423                        'SoapServer', - 424                        'SoapVar', - 425                        'SodiumException', - 426                        'SplDoublyLinkedList', - 427                        'SplFileInfo', - 428                        'SplFileObject', - 429                        'SplFixedArray', - 430                        'SplHeap', - 431                        'SplMaxHeap', - 432                        'SplMinHeap', - 433                        'SplObjectStorage', - 434                        'SplPriorityQueue', - 435                        'SplQueue', - 436                        'SplStack', - 437                        'SplTempFileObject', - 438                        'Spoofchecker', - 439                        'Transliterator', - 440                        'TypeError', - 441                        'UConverter', - 442                        'UnderflowException', - 443                        'UnexpectedValueException', - 444                        'WeakReference', - 445                        'XMLReader', - 446                        'XMLWriter', - 447                        'XSLTProcessor', - 448                        'ZipArchive', - 449                        '__PHP_Incomplete_Class', - 450                        'finfo', - 451                        'mysqli', - 452                        'mysqli_driver', - 453                        'mysqli_result', - 454                        'mysqli_sql_exception', - 455                        'mysqli_stmt', - 456                        'mysqli_warning', - 457                        'php_user_filter', - 458                        'stdClass', - 459                        'tidy', - 460                        'tidyNode', - 461                    ], - 462                    '8.0' => [ - 463                        'AddressInfo', - 464                        'Attribute', - 465                        'CurlHandle', - 466                        'CurlMultiHandle', - 467                        'CurlShareHandle', - 468                        'DeflateContext', - 469                        'GdImage', - 470                        'InflateContext', - 471                        'InternalIterator', - 472                        'OpenSSLAsymmetricKey', - 473                        'OpenSSLCertificate', - 474                        'OpenSSLCertificateSigningRequest', - 475                        'PhpToken', - 476                        'ReflectionAttribute', - 477                        'ReflectionUnionType', - 478                        'Shmop', - 479                        'Socket', - 480                        'SysvMessageQueue', - 481                        'SysvSemaphore', - 482                        'SysvSharedMemory', - 483                        'UnhandledMatchError', - 484                        'ValueError', - 485                        'WeakMap', - 486                        'XMLParser', - 487                    ], - 488                    '8.1' => [ - 489                        'CURLStringFile', - 490                        'FTP\Connection', - 491                        'Fiber', - 492                        'FiberError', - 493                        'GdFont', - 494                        'IntlDatePatternGenerator', - 495                        'LDAP\Connection', - 496                        'LDAP\Result', - 497                        'LDAP\ResultEntry', - 498                        'PSpell\Config', - 499                        'PSpell\Dictionary', - 500                        'PgSql\Connection', - 501                        'PgSql\Lob', - 502                        'PgSql\Result', - 503                        'ReflectionEnum', - 504                        'ReflectionEnumBackedCase', - 505                        'ReflectionEnumUnitCase', - 506                        'ReflectionFiber', - 507                        'ReflectionIntersectionType', - 508                        'ReturnTypeWillChange', - 509                    ], - 510                    '8.2' => [ - 511                        'AllowDynamicProperties', - 512                        'Random\BrokenRandomEngineError', - 513                        'Random\Engine\Mt19937', - 514                        'Random\Engine\PcgOneseq128XslRr64', - 515                        'Random\Engine\Secure', - 516                        'Random\Engine\Xoshiro256StarStar', - 517                        'Random\RandomError', - 518                        'Random\RandomException', - 519                        'Random\Randomizer', - 520                        'SensitiveParameter', - 521                        'SensitiveParameterValue', - 522                    ], - 523                    '8.3' => [ - 524                    ], - 525                    '8.4' => [ - 526                        'DOM\Document', - 527                        'DOM\HTMLDocument', - 528                        'DOM\XMLDocument', - 529                        'DateError', - 530                        'DateException', - 531                        'DateInvalidOperationException', - 532                        'DateInvalidTimeZoneException', - 533                        'DateMalformedIntervalStringException', - 534                        'DateMalformedPeriodStringException', - 535                        'DateMalformedStringException', - 536                        'DateObjectError', - 537                        'DateRangeError', - 538                        'Override', - 539                        'Random\IntervalBoundary', - 540                        'SQLite3Exception', - 541                        'dom\attr', - 542                        'dom\cdatasection', - 543                        'dom\characterdata', - 544                        'dom\comment', - 545                        'dom\documentfragment', - 546                        'dom\documenttype', - 547                        'dom\domexception', - 548                        'dom\element', - 549                        'dom\entity', - 550                        'dom\entityreference', - 551                        'dom\namednodemap', - 552                        'dom\namespacenode', - 553                        'dom\node', - 554                        'dom\nodelist', - 555                        'dom\notation', - 556                        'dom\processinginstruction', - 557                        'dom\text', - 558                        'dom\xpath', - 559                    ] - 560                ] - 561            ) - 562        ); + 273        return array_merge( + 274            ...array_values( + 275                [ + 276                    '7.4' => [ + 277                        'AppendIterator', + 278                        'ArgumentCountError', + 279                        'ArithmeticError', + 280                        'ArrayIterator', + 281                        'ArrayObject', + 282                        'AssertionError', + 283                        'BadFunctionCallException', + 284                        'BadMethodCallException', + 285                        'CURLFile', + 286                        'CachingIterator', + 287                        'CallbackFilterIterator', + 288                        'ClosedGeneratorException', + 289                        'Closure', + 290                        'Collator', + 291                        'CompileError', + 292                        'DOMAttr', + 293                        'DOMCdataSection', + 294                        'DOMCharacterData', + 295                        'DOMComment', + 296                        'DOMConfiguration', + 297                        'DOMDocument', + 298                        'DOMDocumentFragment', + 299                        'DOMDocumentType', + 300                        'DOMDomError', + 301                        'DOMElement', + 302                        'DOMEntity', + 303                        'DOMEntityReference', + 304                        'DOMErrorHandler', + 305                        'DOMException', + 306                        'DOMImplementation', + 307                        'DOMImplementationList', + 308                        'DOMImplementationSource', + 309                        'DOMLocator', + 310                        'DOMNameList', + 311                        'DOMNameSpaceNode', + 312                        'DOMNamedNodeMap', + 313                        'DOMNode', + 314                        'DOMNodeList', + 315                        'DOMNotation', + 316                        'DOMProcessingInstruction', + 317                        'DOMStringExtend', + 318                        'DOMStringList', + 319                        'DOMText', + 320                        'DOMTypeinfo', + 321                        'DOMUserDataHandler', + 322                        'DOMXPath', + 323                        'DateInterval', + 324                        'DatePeriod', + 325                        'DateTime', + 326                        'DateTimeImmutable', + 327                        'DateTimeZone', + 328                        'Directory', + 329                        'DirectoryIterator', + 330                        'DivisionByZeroError', + 331                        'DomainException', + 332                        'EmptyIterator', + 333                        'Error', + 334                        'ErrorException', + 335                        'Exception', + 336                        'FFI', + 337                        'FFI\CData', + 338                        'FFI\CType', + 339                        'FFI\Exception', + 340                        'FFI\ParserException', + 341                        'FilesystemIterator', + 342                        'FilterIterator', + 343                        'GMP', + 344                        'Generator', + 345                        'GlobIterator', + 346                        'HashContext', + 347                        'InfiniteIterator', + 348                        'IntlBreakIterator', + 349                        'IntlCalendar', + 350                        'IntlChar', + 351                        'IntlCodePointBreakIterator', + 352                        'IntlDateFormatter', + 353                        'IntlException', + 354                        'IntlGregorianCalendar', + 355                        'IntlIterator', + 356                        'IntlPartsIterator', + 357                        'IntlRuleBasedBreakIterator', + 358                        'IntlTimeZone', + 359                        'InvalidArgumentException', + 360                        'IteratorIterator', + 361                        'JsonException', + 362                        'LengthException', + 363                        'LibXMLError', + 364                        'LimitIterator', + 365                        'Locale', + 366                        'LogicException', + 367                        'MessageFormatter', + 368                        'MultipleIterator', + 369                        'NoRewindIterator', + 370                        'Normalizer', + 371                        'NumberFormatter', + 372                        'OutOfBoundsException', + 373                        'OutOfRangeException', + 374                        'OverflowException', + 375                        'PDO', + 376                        'PDOException', + 377                        'PDORow', + 378                        'PDOStatement', + 379                        'ParentIterator', + 380                        'ParseError', + 381                        'Phar', + 382                        'PharData', + 383                        'PharException', + 384                        'PharFileInfo', + 385                        'RangeException', + 386                        'RecursiveArrayIterator', + 387                        'RecursiveCachingIterator', + 388                        'RecursiveCallbackFilterIterator', + 389                        'RecursiveDirectoryIterator', + 390                        'RecursiveFilterIterator', + 391                        'RecursiveIteratorIterator', + 392                        'RecursiveRegexIterator', + 393                        'RecursiveTreeIterator', + 394                        'Reflection', + 395                        'ReflectionClass', + 396                        'ReflectionClassConstant', + 397                        'ReflectionException', + 398                        'ReflectionExtension', + 399                        'ReflectionFunction', + 400                        'ReflectionFunctionAbstract', + 401                        'ReflectionGenerator', + 402                        'ReflectionMethod', + 403                        'ReflectionNamedType', + 404                        'ReflectionObject', + 405                        'ReflectionParameter', + 406                        'ReflectionProperty', + 407                        'ReflectionReference', + 408                        'ReflectionType', + 409                        'ReflectionZendExtension', + 410                        'RegexIterator', + 411                        'ResourceBundle', + 412                        'RuntimeException', + 413                        'SQLite3', + 414                        'SQLite3Result', + 415                        'SQLite3Stmt', + 416                        'SessionHandler', + 417                        'SimpleXMLElement', + 418                        'SimpleXMLIterator', + 419                        'SoapClient', + 420                        'SoapFault', + 421                        'SoapHeader', + 422                        'SoapParam', + 423                        'SoapServer', + 424                        'SoapVar', + 425                        'SodiumException', + 426                        'SplDoublyLinkedList', + 427                        'SplFileInfo', + 428                        'SplFileObject', + 429                        'SplFixedArray', + 430                        'SplHeap', + 431                        'SplMaxHeap', + 432                        'SplMinHeap', + 433                        'SplObjectStorage', + 434                        'SplPriorityQueue', + 435                        'SplQueue', + 436                        'SplStack', + 437                        'SplTempFileObject', + 438                        'Spoofchecker', + 439                        'Transliterator', + 440                        'TypeError', + 441                        'UConverter', + 442                        'UnderflowException', + 443                        'UnexpectedValueException', + 444                        'WeakReference', + 445                        'XMLReader', + 446                        'XMLWriter', + 447                        'XSLTProcessor', + 448                        'ZipArchive', + 449                        '__PHP_Incomplete_Class', + 450                        'finfo', + 451                        'mysqli', + 452                        'mysqli_driver', + 453                        'mysqli_result', + 454                        'mysqli_sql_exception', + 455                        'mysqli_stmt', + 456                        'mysqli_warning', + 457                        'php_user_filter', + 458                        'stdClass', + 459                        'tidy', + 460                        'tidyNode', + 461                    ], + 462                    '8.0' => [ + 463                        'AddressInfo', + 464                        'Attribute', + 465                        'CurlHandle', + 466                        'CurlMultiHandle', + 467                        'CurlShareHandle', + 468                        'DeflateContext', + 469                        'GdImage', + 470                        'InflateContext', + 471                        'InternalIterator', + 472                        'OpenSSLAsymmetricKey', + 473                        'OpenSSLCertificate', + 474                        'OpenSSLCertificateSigningRequest', + 475                        'PhpToken', + 476                        'ReflectionAttribute', + 477                        'ReflectionUnionType', + 478                        'Shmop', + 479                        'Socket', + 480                        'SysvMessageQueue', + 481                        'SysvSemaphore', + 482                        'SysvSharedMemory', + 483                        'UnhandledMatchError', + 484                        'ValueError', + 485                        'WeakMap', + 486                        'XMLParser', + 487                    ], + 488                    '8.1' => [ + 489                        'CURLStringFile', + 490                        'FTP\Connection', + 491                        'Fiber', + 492                        'FiberError', + 493                        'GdFont', + 494                        'IntlDatePatternGenerator', + 495                        'LDAP\Connection', + 496                        'LDAP\Result', + 497                        'LDAP\ResultEntry', + 498                        'PSpell\Config', + 499                        'PSpell\Dictionary', + 500                        'PgSql\Connection', + 501                        'PgSql\Lob', + 502                        'PgSql\Result', + 503                        'ReflectionEnum', + 504                        'ReflectionEnumBackedCase', + 505                        'ReflectionEnumUnitCase', + 506                        'ReflectionFiber', + 507                        'ReflectionIntersectionType', + 508                        'ReturnTypeWillChange', + 509                    ], + 510                    '8.2' => [ + 511                        'AllowDynamicProperties', + 512                        'Random\BrokenRandomEngineError', + 513                        'Random\Engine\Mt19937', + 514                        'Random\Engine\PcgOneseq128XslRr64', + 515                        'Random\Engine\Secure', + 516                        'Random\Engine\Xoshiro256StarStar', + 517                        'Random\RandomError', + 518                        'Random\RandomException', + 519                        'Random\Randomizer', + 520                        'SensitiveParameter', + 521                        'SensitiveParameterValue', + 522                    ], + 523                    '8.3' => [ + 524                    ], + 525                    '8.4' => [ + 526                        'DOM\Document', + 527                        'DOM\HTMLDocument', + 528                        'DOM\XMLDocument', + 529                        'DateError', + 530                        'DateException', + 531                        'DateInvalidOperationException', + 532                        'DateInvalidTimeZoneException', + 533                        'DateMalformedIntervalStringException', + 534                        'DateMalformedPeriodStringException', + 535                        'DateMalformedStringException', + 536                        'DateObjectError', + 537                        'DateRangeError', + 538                        'Override', + 539                        'Random\IntervalBoundary', + 540                        'SQLite3Exception', + 541                        'dom\attr', + 542                        'dom\cdatasection', + 543                        'dom\characterdata', + 544                        'dom\comment', + 545                        'dom\documentfragment', + 546                        'dom\documenttype', + 547                        'dom\domexception', + 548                        'dom\element', + 549                        'dom\entity', + 550                        'dom\entityreference', + 551                        'dom\namednodemap', + 552                        'dom\namespacenode', + 553                        'dom\node', + 554                        'dom\nodelist', + 555                        'dom\notation', + 556                        'dom\processinginstruction', + 557                        'dom\text', + 558                        'dom\xpath', + 559                    ] + 560                ] + 561            ) + 562        ); 563    } 564} @@ -855,7 +855,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Cleanup.php.html b/Cleanup.php.html index 71dae0b..1ac464d 100644 --- a/Cleanup.php.html +++ b/Cleanup.php.html @@ -44,21 +44,21 @@ Total
-
- 42.11% covered (danger) +
+ 0.00% covered (danger)
-
42.11%
-
40 / 95
+
0.00%
+
0 / 95
-
- 25.00% covered (danger) +
+ 0.00% covered (danger)
-
25.00%
-
1 / 4
+
0.00%
+
0 / 4
CRAP
@@ -73,22 +73,22 @@ Cleanup
-
- 42.11% covered (danger) +
+ 0.00% covered (danger)
-
42.11%
-
40 / 95
+
0.00%
+
0 / 95
-
- 25.00% covered (danger) +
+ 0.00% covered (danger)
-
25.00%
-
1 / 4
- 192.20 +
0.00%
+
0 / 4
+ 870
0.00% covered (danger) @@ -100,37 +100,37 @@ -  __construct -
-
- 100.00% covered (success) +  __construct +
+
+ 0.00% covered (danger)
-
100.00%
-
6 / 6
-
-
- 100.00% covered (success) +
0.00%
+
0 / 6
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 3 - +
0.00%
+
0 / 1
+ 12 + -  cleanup -
-
- 72.34% covered (warning) +  cleanup +
+
+ 0.00% covered (danger)
-
72.34%
-
34 / 47
+
0.00%
+
0 / 47
0.00% covered (danger) @@ -139,7 +139,7 @@
0.00%
0 / 1
- 23.12 + 306 @@ -223,14 +223,14 @@ 28 29    public function __construct(StraussConfig $config, string $workingDir) 30    { - 31        $this->vendorDirectory = $config->getVendorDirectory(); - 32        $this->targetDirectory = $config->getTargetDirectory(); - 33        $this->workingDir = $workingDir; + 31        $this->vendorDirectory = $config->getVendorDirectory(); + 32        $this->targetDirectory = $config->getTargetDirectory(); + 33        $this->workingDir = $workingDir; 34 - 35        $this->isDeleteVendorFiles = $config->isDeleteVendorFiles() && $config->getTargetDirectory() !== $config->getVendorDirectory(); - 36        $this->isDeleteVendorPackages = $config->isDeleteVendorPackages() && $config->getTargetDirectory() !== $config->getVendorDirectory(); + 35        $this->isDeleteVendorFiles = $config->isDeleteVendorFiles() && $config->getTargetDirectory() !== $config->getVendorDirectory(); + 36        $this->isDeleteVendorPackages = $config->isDeleteVendorPackages() && $config->getTargetDirectory() !== $config->getVendorDirectory(); 37 - 38        $this->filesystem = new Filesystem(new LocalFilesystemAdapter($workingDir)); + 38        $this->filesystem = new Filesystem(new LocalFilesystemAdapter($workingDir)); 39    } 40 41    /** @@ -241,27 +241,27 @@ 46     */ 47    public function cleanup(array $sourceFiles): void 48    { - 49        if (!$this->isDeleteVendorPackages && !$this->isDeleteVendorFiles) { + 49        if (!$this->isDeleteVendorPackages && !$this->isDeleteVendorFiles) { 50            return; 51        } 52 - 53        if ($this->isDeleteVendorPackages) { - 54            $package_dirs = array_unique(array_map(function (string $relativeFilePath): string { - 55                list( $vendor, $package ) = explode('/', $relativeFilePath); - 56                return "{$vendor}/{$package}"; - 57            }, $sourceFiles)); + 53        if ($this->isDeleteVendorPackages) { + 54            $package_dirs = array_unique(array_map(function (string $relativeFilePath): string { + 55                list( $vendor, $package ) = explode('/', $relativeFilePath); + 56                return "{$vendor}/{$package}"; + 57            }, $sourceFiles)); 58 - 59            foreach ($package_dirs as $package_dir) { - 60                $relativeDirectoryPath = $this->vendorDirectory . $package_dir; + 59            foreach ($package_dirs as $package_dir) { + 60                $relativeDirectoryPath = $this->vendorDirectory . $package_dir; 61 - 62                $absolutePath = $this->workingDir . $relativeDirectoryPath; + 62                $absolutePath = $this->workingDir . $relativeDirectoryPath; 63 - 64                if (is_link($absolutePath)) { - 65                    unlink($absolutePath); + 64                if (is_link($absolutePath)) { + 65                    unlink($absolutePath); 66                } 67 - 68                if ($absolutePath !== realpath($absolutePath)) { - 69                    continue; + 68                if ($absolutePath !== realpath($absolutePath)) { + 69                    continue; 70                } 71 72                $this->filesystem->deleteDirectory($relativeDirectoryPath); @@ -283,33 +283,33 @@ 88        } 89 90        // Get the root folders of the moved files. - 91        $rootSourceDirectories = []; - 92        foreach ($sourceFiles as $sourceFile) { - 93            $arr = explode("/", $sourceFile, 2); - 94            $dir = $arr[0]; - 95            $rootSourceDirectories[ $dir ] = $dir; + 91        $rootSourceDirectories = []; + 92        foreach ($sourceFiles as $sourceFile) { + 93            $arr = explode("/", $sourceFile, 2); + 94            $dir = $arr[0]; + 95            $rootSourceDirectories[ $dir ] = $dir; 96        } - 97        $rootSourceDirectories = array_map( - 98            function (string $path): string { - 99                return $this->vendorDirectory . $path; - 100            }, - 101            array_keys($rootSourceDirectories) - 102        ); + 97        $rootSourceDirectories = array_map( + 98            function (string $path): string { + 99                return $this->vendorDirectory . $path; + 100            }, + 101            array_keys($rootSourceDirectories) + 102        ); 103 - 104        foreach ($rootSourceDirectories as $rootSourceDirectory) { - 105            if (!is_dir($rootSourceDirectory) || is_link($rootSourceDirectory)) { + 104        foreach ($rootSourceDirectories as $rootSourceDirectory) { + 105            if (!is_dir($rootSourceDirectory) || is_link($rootSourceDirectory)) { 106                continue; 107            } 108 - 109            $it = new RecursiveIteratorIterator( - 110                new RecursiveDirectoryIterator( - 111                    $this->workingDir . $rootSourceDirectory, - 112                    FilesystemIterator::SKIP_DOTS - 113                ), - 114                RecursiveIteratorIterator::CHILD_FIRST - 115            ); + 109            $it = new RecursiveIteratorIterator( + 110                new RecursiveDirectoryIterator( + 111                    $this->workingDir . $rootSourceDirectory, + 112                    FilesystemIterator::SKIP_DOTS + 113                ), + 114                RecursiveIteratorIterator::CHILD_FIRST + 115            ); 116 - 117            foreach ($it as $file) { + 117            foreach ($it as $file) { 118                if ($file->isDir() && $this->dirIsEmpty((string) $file)) { 119                    rmdir((string)$file); 120                } @@ -407,7 +407,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Composer/ComposerPackage.php.html b/Composer/ComposerPackage.php.html index 299a8c7..1ce06ec 100644 --- a/Composer/ComposerPackage.php.html +++ b/Composer/ComposerPackage.php.html @@ -44,14 +44,6 @@ Total -
-
- 79.49% covered (warning) -
-
- -
79.49%
-
31 / 39
66.67% covered (warning) @@ -59,8 +51,16 @@
66.67%
-
6 / 9
- CRAP +
26 / 39
+
+
+ 33.33% covered (danger) +
+
+ +
33.33%
+
3 / 9
+ CRAP
0.00% covered (danger) @@ -73,14 +73,6 @@ ComposerPackage -
-
- 79.49% covered (warning) -
-
- -
79.49%
-
31 / 39
66.67% covered (warning) @@ -88,8 +80,16 @@
66.67%
-
6 / 9
- 22.12 +
26 / 39
+
+
+ 33.33% covered (danger) +
+
+ +
33.33%
+
3 / 9
+ 32.37
0.00% covered (danger) @@ -147,13 +147,13 @@  __construct
-
- 86.36% covered (warning) +
+ 77.27% covered (warning)
-
86.36%
-
19 / 22
+
77.27%
+
17 / 22
0.00% covered (danger) @@ -162,7 +162,7 @@
0.00%
0 / 1
- 9.21 + 9.95 @@ -189,47 +189,47 @@ -  getRelativePath -
-
- 100.00% covered (success) +  getRelativePath +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  getPackageAbsolutePath -
-
- 100.00% covered (success) +  getPackageAbsolutePath +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -277,25 +277,25 @@ -  getLicense -
-
- 100.00% covered (success) +  getLicense +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -381,13 +381,13 @@ 75     */ 76    public static function fromFile(string $absolutePath, array $overrideAutoload = null): ComposerPackage 77    { - 78        if (is_dir($absolutePath)) { + 78        if (is_dir($absolutePath)) { 79            $absolutePath = rtrim($absolutePath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'composer.json'; 80        } 81 - 82        $composer = Factory::create(new NullIO(), $absolutePath, true); + 82        $composer = Factory::create(new NullIO(), $absolutePath, true); 83 - 84        return new ComposerPackage($composer, $overrideAutoload); + 84        return new ComposerPackage($composer, $overrideAutoload); 85    } 86 87    /** @@ -411,43 +411,43 @@ 105     */ 106    public function __construct(Composer $composer, array $overrideAutoload = null) 107    { - 108        $this->composer = $composer; + 108        $this->composer = $composer; 109 - 110        $this->packageName = $composer->getPackage()->getName(); + 110        $this->packageName = $composer->getPackage()->getName(); 111 - 112        $composerJsonFileAbsolute = $composer->getConfig()->getConfigSource()->getName(); + 112        $composerJsonFileAbsolute = $composer->getConfig()->getConfigSource()->getName(); 113 - 114        $absolutePath = realpath(dirname($composerJsonFileAbsolute)); - 115        if (false !== $absolutePath) { - 116            $this->packageAbsolutePath = $absolutePath . DIRECTORY_SEPARATOR; + 114        $absolutePath = realpath(dirname($composerJsonFileAbsolute)); + 115        if (false !== $absolutePath) { + 116            $this->packageAbsolutePath = $absolutePath . DIRECTORY_SEPARATOR; 117        } 118 - 119        $vendorDirectory = $this->composer->getConfig()->get('vendor-dir'); - 120        if (file_exists($vendorDirectory . DIRECTORY_SEPARATOR . $this->packageName)) { + 119        $vendorDirectory = $this->composer->getConfig()->get('vendor-dir'); + 120        if (file_exists($vendorDirectory . DIRECTORY_SEPARATOR . $this->packageName)) { 121            $this->relativePath = $this->packageName; 122            $this->packageAbsolutePath = realpath($vendorDirectory . DIRECTORY_SEPARATOR . $this->packageName) . DIRECTORY_SEPARATOR; 123        // If the package is symlinked, the path will be outside the working directory. - 124        } elseif (0 !== strpos($absolutePath, getcwd()) && 1 === preg_match('/.*\/([^\/]*\/[^\/]*)\/[^\/]*/', $vendorDirectory, $output_array)) { - 125            $this->relativePath = $output_array[1]; - 126        } elseif (1 === preg_match('/.*\/([^\/]*\/[^\/]*)\/composer.json/', $composerJsonFileAbsolute, $output_array)) { + 124        } elseif (0 !== strpos($absolutePath, getcwd()) && 1 === preg_match('/.*\/([^\/]*\/[^\/]*)\/[^\/]*/', $vendorDirectory, $output_array)) { + 125            $this->relativePath = $output_array[1]; + 126        } elseif (1 === preg_match('/.*\/([^\/]*\/[^\/]*)\/composer.json/', $composerJsonFileAbsolute, $output_array)) { 127            // Not every package gets installed to a folder matching its name (crewlabs/unsplash). - 128            $this->relativePath = $output_array[1]; + 128            $this->relativePath = $output_array[1]; 129        } 130 - 131        if (!is_null($overrideAutoload)) { + 131        if (!is_null($overrideAutoload)) { 132            $composer->getPackage()->setAutoload($overrideAutoload); 133        } 134 - 135        $this->autoload = $composer->getPackage()->getAutoload(); + 135        $this->autoload = $composer->getPackage()->getAutoload(); 136 - 137        foreach ($composer->getPackage()->getRequires() as $_name => $packageLink) { - 138            $this->requiresNames[] = $packageLink->getTarget(); + 137        foreach ($composer->getPackage()->getRequires() as $_name => $packageLink) { + 138            $this->requiresNames[] = $packageLink->getTarget(); 139        } 140 141        // Try to get the license from the package's composer.json, assume proprietary (all rights reserved!). - 142        $this->license = !empty($composer->getPackage()->getLicense()) + 142        $this->license = !empty($composer->getPackage()->getLicense()) 143            ? implode(',', $composer->getPackage()->getLicense()) - 144            : 'proprietary?'; + 144            : 'proprietary?'; 145    } 146 147    /** @@ -457,17 +457,17 @@ 151     */ 152    public function getPackageName(): string 153    { - 154        return $this->packageName; + 154        return $this->packageName; 155    } 156 157    public function getRelativePath(): ?string 158    { - 159        return $this->relativePath; + 159        return $this->relativePath; 160    } 161 162    public function getPackageAbsolutePath(): ?string 163    { - 164        return $this->packageAbsolutePath; + 164        return $this->packageAbsolutePath; 165    } 166 167    /** @@ -481,7 +481,7 @@ 175     */ 176    public function getAutoload(): array 177    { - 178        return $this->autoload; + 178        return $this->autoload; 179    } 180 181    /** @@ -494,16 +494,16 @@ 188    public function getRequiresNames(): array 189    { 190        // Unset PHP, ext-*. - 191        $removePhpExt = function ($element) { + 191        $removePhpExt = function ($element) { 192            return !( 0 === strpos($element, 'ext') || 'php' === $element ); - 193        }; + 193        }; 194 - 195        return array_filter($this->requiresNames, $removePhpExt); + 195        return array_filter($this->requiresNames, $removePhpExt); 196    } 197 198    public function getLicense():string 199    { - 200        return $this->license; + 200        return $this->license; 201    } 202} @@ -516,7 +516,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Composer/Extra/StraussConfig.php.html b/Composer/Extra/StraussConfig.php.html index 7774cdd..b2c5803 100644 --- a/Composer/Extra/StraussConfig.php.html +++ b/Composer/Extra/StraussConfig.php.html @@ -46,21 +46,21 @@ Total
-
- 89.44% covered (warning) +
+ 83.80% covered (warning)
-
89.44%
-
127 / 142
+
83.80%
+
119 / 142
-
- 82.05% covered (warning) +
+ 61.54% covered (warning)
-
82.05%
-
32 / 39
+
61.54%
+
24 / 39
CRAP
@@ -75,22 +75,22 @@ StraussConfig
-
- 89.44% covered (warning) +
+ 83.80% covered (warning)
-
89.44%
-
127 / 142
+
83.80%
+
119 / 142
-
- 82.05% covered (warning) +
+ 61.54% covered (warning)
-
82.05%
-
32 / 39
- 79.28 +
61.54%
+
24 / 39
+ 95.64
0.00% covered (danger) @@ -168,25 +168,25 @@ -  getVendorDirectory -
-
- 100.00% covered (success) +  getVendorDirectory +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -300,25 +300,25 @@ -  getConstantsPrefix -
-
- 100.00% covered (success) +  getConstantsPrefix +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -410,69 +410,69 @@ -  getExcludePackagesFromCopy -
-
- 100.00% covered (success) +  getExcludePackagesFromCopy +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  getExcludeNamespacesFromCopy -
-
- 100.00% covered (success) +  getExcludeNamespacesFromCopy +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  getExcludeFilePatternsFromCopy -
-
- 100.00% covered (success) +  getExcludeFilePatternsFromCopy +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -542,25 +542,25 @@ -  getExcludeNamespacesFromPrefixing -
-
- 100.00% covered (success) +  getExcludeNamespacesFromPrefixing +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -762,25 +762,25 @@ -  isClassmapOutput -
-
- 100.00% covered (success) +  isClassmapOutput +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -828,25 +828,25 @@ -  getNamespaceReplacementPatterns -
-
- 100.00% covered (success) +  getNamespaceReplacementPatterns +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -1124,47 +1124,47 @@ 157    public function __construct(Composer $composer, InputInterface $input) 158    { 159 - 160        $configExtraSettings = null; + 160        $configExtraSettings = null; 161 162        // Backwards compatibility with Mozart. - 163        if (isset($composer->getPackage()->getExtra()['mozart'])) { + 163        if (isset($composer->getPackage()->getExtra()['mozart'])) { 164            $configExtraSettings = (object)$composer->getPackage()->getExtra()['mozart']; 165 166            // Default setting for Mozart. 167            $this->setDeleteVendorFiles(true); 168        } 169 - 170        if (isset($composer->getPackage()->getExtra()['strauss'])) { - 171            $configExtraSettings = (object)$composer->getPackage()->getExtra()['strauss']; + 170        if (isset($composer->getPackage()->getExtra()['strauss'])) { + 171            $configExtraSettings = (object)$composer->getPackage()->getExtra()['strauss']; 172        } 173 - 174        if (!is_null($configExtraSettings)) { - 175            $mapper = (new JsonMapperFactory())->bestFit(); + 174        if (!is_null($configExtraSettings)) { + 175            $mapper = (new JsonMapperFactory())->bestFit(); 176 - 177            $rename = new Rename(); - 178            $rename->addMapping(StraussConfig::class, 'dep_directory', 'targetDirectory'); - 179            $rename->addMapping(StraussConfig::class, 'dep_namespace', 'namespacePrefix'); + 177            $rename = new Rename(); + 178            $rename->addMapping(StraussConfig::class, 'dep_directory', 'targetDirectory'); + 179            $rename->addMapping(StraussConfig::class, 'dep_namespace', 'namespacePrefix'); 180 - 181            $rename->addMapping(StraussConfig::class, 'exclude_packages', 'excludePackages'); - 182            $rename->addMapping(StraussConfig::class, 'delete_vendor_files', 'deleteVendorFiles'); - 183            $rename->addMapping(StraussConfig::class, 'delete_vendor_packages', 'deleteVendorPackages'); + 181            $rename->addMapping(StraussConfig::class, 'exclude_packages', 'excludePackages'); + 182            $rename->addMapping(StraussConfig::class, 'delete_vendor_files', 'deleteVendorFiles'); + 183            $rename->addMapping(StraussConfig::class, 'delete_vendor_packages', 'deleteVendorPackages'); 184 - 185            $rename->addMapping(StraussConfig::class, 'exclude_prefix_packages', 'excludePackagesFromPrefixing'); + 185            $rename->addMapping(StraussConfig::class, 'exclude_prefix_packages', 'excludePackagesFromPrefixing'); 186 - 187            $mapper->unshift($rename); - 188            $mapper->push(new \JsonMapper\Middleware\CaseConversion( - 189                \JsonMapper\Enums\TextNotation::UNDERSCORE(), - 190                \JsonMapper\Enums\TextNotation::CAMEL_CASE() - 191            )); + 187            $mapper->unshift($rename); + 188            $mapper->push(new \JsonMapper\Middleware\CaseConversion( + 189                \JsonMapper\Enums\TextNotation::UNDERSCORE(), + 190                \JsonMapper\Enums\TextNotation::CAMEL_CASE() + 191            )); 192 - 193            $mapper->mapObject($configExtraSettings, $this); + 193            $mapper->mapObject($configExtraSettings, $this); 194        } 195 196        // Defaults. 197        // * Use PSR-4 autoloader key 198        // * Use PSR-0 autoloader key 199        // * Use the package name - 200        if (! isset($this->namespacePrefix)) { + 200        if (! isset($this->namespacePrefix)) { 201            if (isset($composer->getPackage()->getAutoload()['psr-4'])) { 202                $this->setNamespacePrefix(array_key_first($composer->getPackage()->getAutoload()['psr-4'])); 203            } elseif (isset($composer->getPackage()->getAutoload()['psr-0'])) { @@ -1183,7 +1183,7 @@ 216            } 217        } 218 - 219        if (! isset($this->classmapPrefix)) { + 219        if (! isset($this->classmapPrefix)) { 220            if (isset($composer->getPackage()->getAutoload()['psr-4'])) { 221                $autoloadKey = array_key_first($composer->getPackage()->getAutoload()['psr-4']); 222                $classmapPrefix = str_replace("\\", "_", $autoloadKey); @@ -1209,21 +1209,21 @@ 242            } 243        } 244 - 245        if (!isset($this->namespacePrefix) || !isset($this->classmapPrefix)) { + 245        if (!isset($this->namespacePrefix) || !isset($this->classmapPrefix)) { 246            throw new Exception('Prefix not set. Please set `namespace_prefix`, `classmap_prefix` in composer.json/extra/strauss.'); 247        } 248 - 249        if (empty($this->packages)) { - 250            $this->packages = array_map(function (\Composer\Package\Link $element) { - 251                return $element->getTarget(); - 252            }, $composer->getPackage()->getRequires()); + 249        if (empty($this->packages)) { + 250            $this->packages = array_map(function (\Composer\Package\Link $element) { + 251                return $element->getTarget(); + 252            }, $composer->getPackage()->getRequires()); 253        } 254 255        // If the bool flag for classmapOutput wasn't set in the Json config. - 256        if (!isset($this->classmapOutput)) { - 257            $this->classmapOutput = true; + 256        if (!isset($this->classmapOutput)) { + 257            $this->classmapOutput = true; 258            // Check each autoloader. - 259            foreach ($composer->getPackage()->getAutoload() as $autoload) { + 259            foreach ($composer->getPackage()->getAutoload() as $autoload) { 260                // To see if one of its paths. 261                foreach ($autoload as $entry) { 262                    $paths = (array) $entry; @@ -1242,7 +1242,7 @@ 275        // https://stackoverflow.com/questions/4440626/how-can-i-validate-regex 276        // preg_match('~Valid(Regular)Expression~', null) === false); 277 - 278        if (isset($configExtraSettings->updateCallSites)) { + 278        if (isset($configExtraSettings->updateCallSites)) { 279            if (true === $configExtraSettings->updateCallSites) { 280                $this->updateCallSites = null; 281            } elseif (false === $configExtraSettings->updateCallSites) { @@ -1258,7 +1258,7 @@ 291        // strauss --updateCallSites=true 292        // strauss --updateCallSites=src,input,extra 293 - 294        if ($input->hasOption('updateCallSites')) { + 294        if ($input->hasOption('updateCallSites')) { 295            $updateCallSitesInput = $input->getOption('updateCallSites'); 296 297            if ('false' === $updateCallSitesInput) { @@ -1278,7 +1278,7 @@ 311     */ 312    public function getTargetDirectory(): string 313    { - 314        return trim($this->targetDirectory, DIRECTORY_SEPARATOR . '\\/') . DIRECTORY_SEPARATOR; + 314        return trim($this->targetDirectory, DIRECTORY_SEPARATOR . '\\/') . DIRECTORY_SEPARATOR; 315    } 316 317    /** @@ -1286,15 +1286,15 @@ 319     */ 320    public function setTargetDirectory(string $targetDirectory): void 321    { - 322        $this->targetDirectory = trim( - 323            preg_replace( - 324                '/[\/\\\\]+/', - 325                DIRECTORY_SEPARATOR, - 326                $targetDirectory - 327            ), - 328            DIRECTORY_SEPARATOR - 329        ) - 330            . DIRECTORY_SEPARATOR ; + 322        $this->targetDirectory = trim( + 323            preg_replace( + 324                '/[\/\\\\]+/', + 325                DIRECTORY_SEPARATOR, + 326                $targetDirectory + 327            ), + 328            DIRECTORY_SEPARATOR + 329        ) + 330            . DIRECTORY_SEPARATOR ; 331    } 332 333    /** @@ -1302,7 +1302,7 @@ 335     */ 336    public function getVendorDirectory(): string 337    { - 338        return trim($this->vendorDirectory, DIRECTORY_SEPARATOR . '\\/') . DIRECTORY_SEPARATOR; + 338        return trim($this->vendorDirectory, DIRECTORY_SEPARATOR . '\\/') . DIRECTORY_SEPARATOR; 339    } 340 341    /** @@ -1310,7 +1310,7 @@ 343     */ 344    public function setVendorDirectory(string $vendorDirectory): void 345    { - 346        $this->vendorDirectory = $vendorDirectory; + 346        $this->vendorDirectory = $vendorDirectory; 347    } 348 349    /** @@ -1318,7 +1318,7 @@ 351     */ 352    public function getNamespacePrefix(): string 353    { - 354        return trim($this->namespacePrefix, '\\'); + 354        return trim($this->namespacePrefix, '\\'); 355    } 356 357    /** @@ -1326,7 +1326,7 @@ 359     */ 360    public function setNamespacePrefix(string $namespacePrefix): void 361    { - 362        $this->namespacePrefix = $namespacePrefix; + 362        $this->namespacePrefix = $namespacePrefix; 363    } 364 365    /** @@ -1334,7 +1334,7 @@ 367     */ 368    public function getClassmapPrefix(): string 369    { - 370        return $this->classmapPrefix; + 370        return $this->classmapPrefix; 371    } 372 373    /** @@ -1342,7 +1342,7 @@ 375     */ 376    public function setClassmapPrefix(string $classmapPrefix): void 377    { - 378        $this->classmapPrefix = $classmapPrefix; + 378        $this->classmapPrefix = $classmapPrefix; 379    } 380 381    /** @@ -1350,7 +1350,7 @@ 383     */ 384    public function getConstantsPrefix(): ?string 385    { - 386        return $this->constantsPrefix; + 386        return $this->constantsPrefix; 387    } 388 389    /** @@ -1368,7 +1368,7 @@ 401     */ 402    public function getUpdateCallSites(): ?array 403    { - 404        return $this->updateCallSites; + 404        return $this->updateCallSites; 405    } 406 407    /** @@ -1396,7 +1396,7 @@ 429     */ 430    public function getExcludePackagesFromCopy(): array 431    { - 432        return $this->excludeFromCopy['packages'] ?? array(); + 432        return $this->excludeFromCopy['packages'] ?? array(); 433    } 434 435    /** @@ -1404,7 +1404,7 @@ 437     */ 438    public function getExcludeNamespacesFromCopy(): array 439    { - 440        return $this->excludeFromCopy['namespaces'] ?? array(); + 440        return $this->excludeFromCopy['namespaces'] ?? array(); 441    } 442 443    /** @@ -1412,7 +1412,7 @@ 445     */ 446    public function getExcludeFilePatternsFromCopy(): array 447    { - 448        return $this->excludeFromCopy['file_patterns'] ?? array(); + 448        return $this->excludeFromCopy['file_patterns'] ?? array(); 449    } 450 451    /** @@ -1438,7 +1438,7 @@ 471     */ 472    public function getExcludePackagesFromPrefixing(): array 473    { - 474        return $this->excludeFromPrefix['packages'] ?? array(); + 474        return $this->excludeFromPrefix['packages'] ?? array(); 475    } 476 477    /** @@ -1454,7 +1454,7 @@ 487     */ 488    public function getExcludeNamespacesFromPrefixing(): array 489    { - 490        return $this->excludeFromPrefix['namespaces'] ?? array(); + 490        return $this->excludeFromPrefix['namespaces'] ?? array(); 491    } 492 493    /** @@ -1462,7 +1462,7 @@ 495     */ 496    public function getExcludeFilePatternsFromPrefixing(): array 497    { - 498        return $this->excludeFromPrefix['file_patterns'] ?? array(); + 498        return $this->excludeFromPrefix['file_patterns'] ?? array(); 499    } 500 501 @@ -1471,7 +1471,7 @@ 504     */ 505    public function getOverrideAutoload(): array 506    { - 507        return $this->overrideAutoload; + 507        return $this->overrideAutoload; 508    } 509 510    /** @@ -1487,7 +1487,7 @@ 520     */ 521    public function isDeleteVendorFiles(): bool 522    { - 523        return $this->deleteVendorFiles; + 523        return $this->deleteVendorFiles; 524    } 525 526    /** @@ -1495,7 +1495,7 @@ 528     */ 529    public function isDeleteVendorPackages(): bool 530    { - 531        return $this->deleteVendorPackages; + 531        return $this->deleteVendorPackages; 532    } 533 534    /** @@ -1511,7 +1511,7 @@ 544     */ 545    public function setDeleteVendorPackages(bool $deleteVendorPackages): void 546    { - 547        $this->deleteVendorPackages = $deleteVendorPackages; + 547        $this->deleteVendorPackages = $deleteVendorPackages; 548    } 549 550    /** @@ -1519,7 +1519,7 @@ 552     */ 553    public function getPackages(): array 554    { - 555        return $this->packages; + 555        return $this->packages; 556    } 557 558    /** @@ -1535,7 +1535,7 @@ 568     */ 569    public function isClassmapOutput(): bool 570    { - 571        return $this->classmapOutput; + 571        return $this->classmapOutput; 572    } 573 574    /** @@ -1562,7 +1562,7 @@ 595     */ 596    public function getNamespaceReplacementPatterns(): array 597    { - 598        return $this->namespaceReplacementPatterns; + 598        return $this->namespaceReplacementPatterns; 599    } 600 601    /** @@ -1578,7 +1578,7 @@ 611     */ 612    public function isIncludeModifiedDate(): bool 613    { - 614        return $this->includeModifiedDate; + 614        return $this->includeModifiedDate; 615    } 616 617    /** @@ -1595,7 +1595,7 @@ 628     */ 629    public function isIncludeAuthor(): bool 630    { - 631        return $this->includeAuthor; + 631        return $this->includeAuthor; 632    } 633 634    /** @@ -1616,7 +1616,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Composer/Extra/dashboard.html b/Composer/Extra/dashboard.html index 526a16f..8cafe16 100644 --- a/Composer/Extra/dashboard.html +++ b/Composer/Extra/dashboard.html @@ -59,7 +59,7 @@

Insufficient Coverage

-
BrianHenryIE\Strauss\Composer\Extra\StraussConfig89% + BrianHenryIE\Strauss\Composer\Extra\StraussConfig83% @@ -76,7 +76,7 @@

Project Risks

- BrianHenryIE\Strauss\Composer\Extra\StraussConfig79 + BrianHenryIE\Strauss\Composer\Extra\StraussConfig95 @@ -114,10 +114,18 @@

Insufficient Coverage

+ getVendorDirectory0% + getConstantsPrefix0% setConstantsPrefix0% setExcludeFromCopy0% + getExcludePackagesFromCopy0% + getExcludeNamespacesFromCopy0% + getExcludeFilePatternsFromCopy0% setExcludePackagesFromPrefixing0% + getExcludeNamespacesFromPrefixing0% + isClassmapOutput0% setClassmapOutput0% + getNamespaceReplacementPatterns0% setNamespaceReplacementPatterns0% setExcludeFromPrefix66% @@ -147,7 +155,7 @@

Project Risks

@@ -184,7 +192,7 @@

Project Risks

.yAxis.tickFormat(d3.format('d')); d3.select('#methodCoverageDistribution svg') - .datum(getCoverageDistributionData([5,0,0,0,0,0,0,1,0,0,1,32], "Method Coverage")) + .datum(getCoverageDistributionData([13,0,0,0,0,0,0,1,0,0,1,24], "Method Coverage")) .transition().duration(500).call(chart); nv.utils.windowResize(chart.update); @@ -234,7 +242,7 @@

Project Risks

chart.yAxis.axisLabel('Cyclomatic Complexity'); d3.select('#classComplexity svg') - .datum(getComplexityData([[89.43661971830986,73,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig<\/a>"]], 'Class Complexity')) + .datum(getComplexityData([[83.80281690140845,73,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig<\/a>"]], 'Class Complexity')) .transition() .duration(500) .call(chart); @@ -258,7 +266,7 @@

Project Risks

chart.yAxis.axisLabel('Method Complexity'); d3.select('#methodComplexity svg') - .datum(getComplexityData([[93.25842696629213,30,"
BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getTargetDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setTargetDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getClassmapPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getConstantsPrefix<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setConstantsPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getUpdateCallSites<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setUpdateCallSites<\/a>"],[0,3,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromCopy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromCopy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromCopy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromCopy<\/a>"],[66.66666666666666,4,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromPrefixing<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackagesFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isClassmapOutput<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapOutput<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespaceReplacementPatterns<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespaceReplacementPatterns<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeAuthor<\/a>"]], 'Method Complexity')) + .datum(getComplexityData([[93.25842696629213,30,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getTargetDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setTargetDirectory<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getClassmapPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapPrefix<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getConstantsPrefix<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setConstantsPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getUpdateCallSites<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setUpdateCallSites<\/a>"],[0,3,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromCopy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromCopy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromCopy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromCopy<\/a>"],[66.66666666666666,4,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromPrefixing<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackagesFromPrefixing<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setPackages<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isClassmapOutput<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapOutput<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackages<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespaceReplacementPatterns<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespaceReplacementPatterns<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeAuthor<\/a>"]], 'Method Complexity')) .transition() .duration(500) .call(chart); diff --git a/Composer/Extra/index.html b/Composer/Extra/index.html index 37d4fe5..4bcc45a 100644 --- a/Composer/Extra/index.html +++ b/Composer/Extra/index.html @@ -46,21 +46,21 @@ Total
-
- 89.44% covered (warning) +
+ 83.80% covered (warning)
-
89.44%
-
127 / 142
+
83.80%
+
119 / 142
-
- 82.05% covered (warning) +
+ 61.54% covered (warning)
-
82.05%
-
32 / 39
+
61.54%
+
24 / 39
0.00% covered (danger) @@ -74,21 +74,21 @@ StraussConfig.php
-
- 89.44% covered (warning) +
+ 83.80% covered (warning)
-
89.44%
-
127 / 142
+
83.80%
+
119 / 142
-
- 82.05% covered (warning) +
+ 61.54% covered (warning)
-
82.05%
-
32 / 39
+
61.54%
+
24 / 39
0.00% covered (danger) @@ -112,7 +112,7 @@

Legend

High: 90% to 100%

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Composer/ProjectComposerPackage.php.html b/Composer/ProjectComposerPackage.php.html index 6351ed4..cf45a4f 100644 --- a/Composer/ProjectComposerPackage.php.html +++ b/Composer/ProjectComposerPackage.php.html @@ -45,21 +45,21 @@ Total
-
- 93.55% covered (success) +
+ 90.32% covered (success)
-
93.55%
-
29 / 31
+
90.32%
+
28 / 31
-
- 80.00% covered (warning) +
+ 60.00% covered (warning)
-
80.00%
-
4 / 5
+
60.00%
+
3 / 5
CRAP
@@ -74,22 +74,22 @@ ProjectComposerPackage
-
- 93.55% covered (success) +
+ 90.32% covered (success)
-
93.55%
-
29 / 31
+
90.32%
+
28 / 31
-
- 80.00% covered (warning) +
+ 60.00% covered (warning)
-
80.00%
-
4 / 5
- 9.02 +
60.00%
+
3 / 5
+ 9.07
0.00% covered (danger) @@ -145,25 +145,25 @@ -  getAuthor -
-
- 100.00% covered (success) +  getAuthor +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -242,30 +242,30 @@ 24     */ 25    public function __construct(string $absolutePath, ?array $overrideAutoload = null) 26    { - 27        if (is_dir($absolutePath)) { - 28            $absolutePathDir = $absolutePath; - 29            $absolutePathFile = rtrim($absolutePath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'composer.json'; + 27        if (is_dir($absolutePath)) { + 28            $absolutePathDir = $absolutePath; + 29            $absolutePathFile = rtrim($absolutePath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . 'composer.json'; 30        } else { 31            $absolutePathDir = rtrim($absolutePath, 'composer.json'); 32            $absolutePathFile = $absolutePath; 33        } - 34        unset($absolutePath); + 34        unset($absolutePath); 35 - 36        $composer = Factory::create(new NullIO(), $absolutePathFile, true); + 36        $composer = Factory::create(new NullIO(), $absolutePathFile, true); 37 - 38        parent::__construct($composer, $overrideAutoload); + 38        parent::__construct($composer, $overrideAutoload); 39 - 40        $authors = $this->composer->getPackage()->getAuthors(); - 41        if (empty($authors) || !isset($authors[0]['name'])) { - 42            $this->author = explode("/", $this->packageName, 2)[0]; + 40        $authors = $this->composer->getPackage()->getAuthors(); + 41        if (empty($authors) || !isset($authors[0]['name'])) { + 42            $this->author = explode("/", $this->packageName, 2)[0]; 43        } else { 44            $this->author = $authors[0]['name']; 45        } 46 - 47        $vendorDirectory = $this->composer->getConfig()->get('vendor-dir'); - 48        if (is_string($vendorDirectory)) { - 49            $vendorDirectory = str_replace($absolutePathDir, '', (string) $vendorDirectory); - 50            $this->vendorDirectory = $vendorDirectory; + 47        $vendorDirectory = $this->composer->getConfig()->get('vendor-dir'); + 48        if (is_string($vendorDirectory)) { + 49            $vendorDirectory = str_replace($absolutePathDir, '', (string) $vendorDirectory); + 50            $this->vendorDirectory = $vendorDirectory; 51        } else { 52            $this->vendorDirectory = 'vendor' . DIRECTORY_SEPARATOR; 53        } @@ -277,20 +277,20 @@ 59     */ 60    public function getStraussConfig(InputInterface $input): StraussConfig 61    { - 62        $config = new StraussConfig($this->composer, $input); - 63        $config->setVendorDirectory($this->getVendorDirectory()); - 64        return $config; + 62        $config = new StraussConfig($this->composer, $input); + 63        $config->setVendorDirectory($this->getVendorDirectory()); + 64        return $config; 65    } 66 67 68    public function getAuthor(): string 69    { - 70        return $this->author; + 70        return $this->author; 71    } 72 73    public function getVendorDirectory(): string 74    { - 75        return rtrim($this->vendorDirectory, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; + 75        return rtrim($this->vendorDirectory, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; 76    } 77 78    /** @@ -300,15 +300,15 @@ 82     */ 83    public function getFlatAutoloadKey(): array 84    { - 85        $autoload = $this->getAutoload(); - 86        $values = []; - 87        array_walk_recursive( - 88            $autoload, - 89            function ($value, $key) use (&$values) { + 85        $autoload = $this->getAutoload(); + 86        $values = []; + 87        array_walk_recursive( + 88            $autoload, + 89            function ($value, $key) use (&$values) { 90                $values[] = $value; - 91            } - 92        ); - 93        return $values; + 91            } + 92        ); + 93        return $values; 94    } 95} @@ -321,7 +321,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Composer/dashboard.html b/Composer/dashboard.html index 67f672d..2bdad89 100644 --- a/Composer/dashboard.html +++ b/Composer/dashboard.html @@ -58,8 +58,8 @@

Insufficient Coverage

-
BrianHenryIE\Strauss\Composer\ComposerPackage79% - BrianHenryIE\Strauss\Composer\Extra\StraussConfig89% + BrianHenryIE\Strauss\Composer\ComposerPackage66% + BrianHenryIE\Strauss\Composer\Extra\StraussConfig83% @@ -76,8 +76,8 @@

Project Risks

- BrianHenryIE\Strauss\Composer\Extra\StraussConfig79 - BrianHenryIE\Strauss\Composer\ComposerPackage22 + BrianHenryIE\Strauss\Composer\Extra\StraussConfig95 + BrianHenryIE\Strauss\Composer\ComposerPackage32 @@ -115,15 +115,27 @@

Insufficient Coverage

+ getAuthor0% fromComposerJsonArray0% - setConstantsPrefix0% - setExcludeFromCopy0% - setExcludePackagesFromPrefixing0% - setClassmapOutput0% setNamespaceReplacementPatterns0% + getNamespaceReplacementPatterns0% + setClassmapOutput0% + isClassmapOutput0% + getExcludeNamespacesFromPrefixing0% + setExcludePackagesFromPrefixing0% + getExcludeFilePatternsFromCopy0% + getExcludeNamespacesFromCopy0% + getExcludePackagesFromCopy0% + setExcludeFromCopy0% + setConstantsPrefix0% + getConstantsPrefix0% + getVendorDirectory0% + getLicense0% + getPackageAbsolutePath0% + getRelativePath0% setExcludeFromPrefix66% fromFile75% - __construct86% + __construct77% __construct88% @@ -155,7 +167,7 @@

Project Risks

@@ -174,7 +186,7 @@

Project Risks

.yAxis.tickFormat(d3.format('d')); d3.select('#classCoverageDistribution svg') - .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,1,1,1,0], "Class Coverage")) + .datum(getCoverageDistributionData([0,0,0,0,0,0,0,1,0,1,1,0], "Class Coverage")) .transition().duration(500).call(chart); nv.utils.windowResize(chart.update); @@ -192,7 +204,7 @@

Project Risks

.yAxis.tickFormat(d3.format('d')); d3.select('#methodCoverageDistribution svg') - .datum(getCoverageDistributionData([6,0,0,0,0,0,0,1,1,2,1,42], "Method Coverage")) + .datum(getCoverageDistributionData([18,0,0,0,0,0,0,1,2,1,1,30], "Method Coverage")) .transition().duration(500).call(chart); nv.utils.windowResize(chart.update); @@ -242,7 +254,7 @@

Project Risks

chart.yAxis.axisLabel('Cyclomatic Complexity'); d3.select('#classComplexity svg') - .datum(getComplexityData([[79.48717948717949,19,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage<\/a>"],[89.43661971830986,73,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig<\/a>"],[93.54838709677419,9,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage<\/a>"]], 'Class Complexity')) + .datum(getComplexityData([[66.66666666666666,19,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage<\/a>"],[83.80281690140845,73,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig<\/a>"],[90.32258064516128,9,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage<\/a>"]], 'Class Complexity')) .transition() .duration(500) .call(chart); @@ -266,7 +278,7 @@

Project Risks

chart.yAxis.axisLabel('Method Complexity'); d3.select('#methodComplexity svg') - .datum(getComplexityData([[75,2,"
BrianHenryIE\\Strauss\\Composer\\ComposerPackage::fromFile<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::fromComposerJsonArray<\/a>"],[86.36363636363636,9,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getPackageName<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getRelativePath<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getPackageAbsolutePath<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getAutoload<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getRequiresNames<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getLicense<\/a>"],[93.25842696629213,30,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getTargetDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setTargetDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getClassmapPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getConstantsPrefix<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setConstantsPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getUpdateCallSites<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setUpdateCallSites<\/a>"],[0,3,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromCopy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromCopy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromCopy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromCopy<\/a>"],[66.66666666666666,4,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromPrefixing<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackagesFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isClassmapOutput<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapOutput<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespaceReplacementPatterns<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespaceReplacementPatterns<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeAuthor<\/a>"],[88.23529411764706,5,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getStraussConfig<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getFlatAutoloadKey<\/a>"]], 'Method Complexity')) + .datum(getComplexityData([[75,2,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::fromFile<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::fromComposerJsonArray<\/a>"],[77.27272727272727,9,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getPackageName<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getRelativePath<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getPackageAbsolutePath<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getAutoload<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getRequiresNames<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getLicense<\/a>"],[93.25842696629213,30,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getTargetDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setTargetDirectory<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getClassmapPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapPrefix<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getConstantsPrefix<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setConstantsPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getUpdateCallSites<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setUpdateCallSites<\/a>"],[0,3,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromCopy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromCopy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromCopy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromCopy<\/a>"],[66.66666666666666,4,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromPrefixing<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackagesFromPrefixing<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setPackages<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isClassmapOutput<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapOutput<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackages<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespaceReplacementPatterns<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespaceReplacementPatterns<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeAuthor<\/a>"],[88.23529411764706,5,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getStraussConfig<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getFlatAutoloadKey<\/a>"]], 'Method Complexity')) .transition() .duration(500) .call(chart); diff --git a/Composer/index.html b/Composer/index.html index 4ec6ee8..ee6ebc0 100644 --- a/Composer/index.html +++ b/Composer/index.html @@ -45,21 +45,21 @@ Total
-
- 88.21% covered (warning) +
+ 81.60% covered (warning)
-
88.21%
-
187 / 212
+
81.60%
+
173 / 212
-
- 79.25% covered (warning) +
+ 56.60% covered (warning)
-
79.25%
-
42 / 53
+
56.60%
+
30 / 53
0.00% covered (danger) @@ -73,21 +73,21 @@ Extra
-
- 89.44% covered (warning) +
+ 83.80% covered (warning)
-
89.44%
-
127 / 142
+
83.80%
+
119 / 142
-
- 82.05% covered (warning) +
+ 61.54% covered (warning)
-
82.05%
-
32 / 39
+
61.54%
+
24 / 39
0.00% covered (danger) @@ -100,14 +100,6 @@ ComposerPackage.php -
-
- 79.49% covered (warning) -
-
- -
79.49%
-
31 / 39
66.67% covered (warning) @@ -115,7 +107,15 @@
66.67%
-
6 / 9
+
26 / 39
+
+
+ 33.33% covered (danger) +
+
+ +
33.33%
+
3 / 9
0.00% covered (danger) @@ -129,21 +129,21 @@ ProjectComposerPackage.php
-
- 93.55% covered (success) +
+ 90.32% covered (success)
-
93.55%
-
29 / 31
+
90.32%
+
28 / 31
-
- 80.00% covered (warning) +
+ 60.00% covered (warning)
-
80.00%
-
4 / 5
+
60.00%
+
3 / 5
0.00% covered (danger) @@ -167,7 +167,7 @@

Legend

High: 90% to 100%

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Console/Application.php.html b/Console/Application.php.html index f64cdaa..b85559b 100644 --- a/Console/Application.php.html +++ b/Console/Application.php.html @@ -160,7 +160,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Console/Commands/Compose.php.html b/Console/Commands/Compose.php.html index 560c7d3..6b94825 100644 --- a/Console/Commands/Compose.php.html +++ b/Console/Commands/Compose.php.html @@ -44,23 +44,23 @@ - Total -
-
- 73.46% covered (warning) + Total +
+
+ 17.90% covered (danger)
-
73.46%
-
119 / 162
+
17.90%
+
29 / 162
-
- 46.67% covered (danger) +
+ 6.67% covered (danger)
-
46.67%
-
7 / 15
+
6.67%
+
1 / 15
CRAP
@@ -73,24 +73,24 @@ - Compose -
-
- 73.46% covered (warning) + Compose +
+
+ 17.90% covered (danger)
-
73.46%
-
119 / 162
+
17.90%
+
29 / 162
-
- 46.67% covered (danger) +
+ 6.67% covered (danger)
-
46.67%
-
7 / 15
- 57.91 +
6.67%
+
1 / 15
+ 712.87
0.00% covered (danger) @@ -124,37 +124,37 @@ -  execute -
-
- 100.00% covered (success) +  execute +
+
+ 52.17% covered (warning)
-
100.00%
-
23 / 23
-
-
- 100.00% covered (success) +
52.17%
+
12 / 23
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 2 - +
0.00%
+
0 / 1
+ 2.44 + -  loadProjectComposerPackage -
-
- 60.00% covered (warning) +  loadProjectComposerPackage +
+
+ 20.00% covered (danger)
-
60.00%
-
6 / 10
+
20.00%
+
2 / 10
0.00% covered (danger) @@ -163,42 +163,42 @@
0.00%
0 / 1
- 3.58 + 7.61 -  buildDependencyList -
-
- 100.00% covered (success) +  buildDependencyList +
+
+ 0.00% covered (danger)
-
100.00%
-
3 / 3
-
-
- 100.00% covered (success) +
0.00%
+
0 / 3
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  recursiveGetAllDependencies -
-
- 59.38% covered (warning) +  recursiveGetAllDependencies +
+
+ 0.00% covered (danger)
-
59.38%
-
19 / 32
+
0.00%
+
0 / 32
0.00% covered (danger) @@ -207,42 +207,42 @@
0.00%
0 / 1
- 16.70 + 110 -  enumerateFiles -
-
- 100.00% covered (success) +  enumerateFiles +
+
+ 0.00% covered (danger)
-
100.00%
-
7 / 7
-
-
- 100.00% covered (success) +
0.00%
+
0 / 7
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  copyFiles -
-
- 90.91% covered (success) +  copyFiles +
+
+ 0.00% covered (danger)
-
90.91%
-
10 / 11
+
0.00%
+
0 / 11
0.00% covered (danger) @@ -251,64 +251,64 @@
0.00%
0 / 1
- 2.00 + 6 -  determineChanges -
-
- 100.00% covered (success) +  determineChanges +
+
+ 0.00% covered (danger)
-
100.00%
-
5 / 5
-
-
- 100.00% covered (success) +
0.00%
+
0 / 5
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  performReplacements -
-
- 100.00% covered (success) +  performReplacements +
+
+ 0.00% covered (danger)
-
100.00%
-
7 / 7
-
-
- 100.00% covered (success) +
0.00%
+
0 / 7
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 +  performReplacementsInComposerFiles
-
- 18.18% covered (danger) +
+ 0.00% covered (danger)
-
18.18%
-
2 / 11
+
0.00%
+
0 / 11
0.00% covered (danger) @@ -317,20 +317,20 @@
0.00%
0 / 1
- 4.19 + 6  performReplacementsInProjectFiles
-
- 27.78% covered (danger) +
+ 0.00% covered (danger)
-
27.78%
-
5 / 18
+
0.00%
+
0 / 18
0.00% covered (danger) @@ -339,42 +339,42 @@
0.00%
0 / 1
- 14.42 + 30 -  addLicenses -
-
- 100.00% covered (success) +  addLicenses +
+
+ 0.00% covered (danger)
-
100.00%
-
7 / 7
-
-
- 100.00% covered (success) +
0.00%
+
0 / 7
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  generateAutoloader -
-
- 83.33% covered (warning) +  generateAutoloader +
+
+ 0.00% covered (danger)
-
83.33%
-
5 / 6
+
0.00%
+
0 / 6
0.00% covered (danger) @@ -383,7 +383,7 @@
0.00%
0 / 1
- 2.02 + 6 @@ -410,15 +410,15 @@ -  cleanUp -
-
- 83.33% covered (warning) +  cleanUp +
+
+ 0.00% covered (danger)
-
83.33%
-
5 / 6
+
0.00%
+
0 / 6
0.00% covered (danger) @@ -427,7 +427,7 @@
0.00%
0 / 1
- 2.02 + 6 @@ -487,23 +487,23 @@ 48     */ 49    protected function configure() 50    { - 51        $this->setName('compose'); - 52        $this->setDescription("Copy composer's `require` and prefix their namespace and classnames."); - 53        $this->setHelp(''); + 51        $this->setName('compose'); + 52        $this->setDescription("Copy composer's `require` and prefix their namespace and classnames."); + 53        $this->setHelp(''); 54 - 55        $this->addOption( - 56            'updateCallSites', - 57            null, - 58            InputArgument::OPTIONAL, - 59            'Should replacements also be performed in project files? true|list,of,paths|false' - 60        ); + 55        $this->addOption( + 56            'updateCallSites', + 57            null, + 58            InputArgument::OPTIONAL, + 59            'Should replacements also be performed in project files? true|list,of,paths|false' + 60        ); 61 - 62        $this->addOption( - 63            'deleteVendorPackages', - 64            null, - 65            InputArgument::OPTIONAL, - 66            'Should original packages be deleted after copying? true|false' - 67        ); + 62        $this->addOption( + 63            'deleteVendorPackages', + 64            null, + 65            InputArgument::OPTIONAL, + 66            'Should original packages be deleted after copying? true|false' + 67        ); 68    } 69 70    /** @@ -515,44 +515,44 @@ 76     */ 77    protected function execute(InputInterface $input, OutputInterface $output): int 78    { - 79        $this->setLogger( - 80            new ConsoleLogger( - 81                $output, - 82                [LogLevel::INFO => OutputInterface::VERBOSITY_NORMAL] - 83            ) - 84        ); + 79        $this->setLogger( + 80            new ConsoleLogger( + 81                $output, + 82                [LogLevel::INFO => OutputInterface::VERBOSITY_NORMAL] + 83            ) + 84        ); 85 - 86        $workingDir = getcwd() . DIRECTORY_SEPARATOR; - 87        $this->workingDir = $workingDir; + 86        $workingDir = getcwd() . DIRECTORY_SEPARATOR; + 87        $this->workingDir = $workingDir; 88 89        try { - 90            $this->loadProjectComposerPackage($input); + 90            $this->loadProjectComposerPackage($input); 91 - 92            $this->buildDependencyList(); + 92            $this->buildDependencyList(); 93 - 94            $this->enumerateFiles(); + 94            $this->enumerateFiles(); 95 - 96            $this->copyFiles(); + 96            $this->copyFiles(); 97 - 98            $this->determineChanges(); + 98            $this->determineChanges(); 99 - 100            $this->performReplacements(); + 100            $this->performReplacements(); 101 - 102            $this->performReplacementsInComposerFiles(); + 102            $this->performReplacementsInComposerFiles(); 103 - 104            $this->performReplacementsInProjectFiles(); + 104            $this->performReplacementsInProjectFiles(); 105 - 106            $this->addLicenses(); + 106            $this->addLicenses(); 107 - 108            $this->generateAutoloader(); + 108            $this->generateAutoloader(); 109 - 110            $this->cleanUp(); + 110            $this->cleanUp(); 111        } catch (Exception $e) { 112            $this->logger->error($e->getMessage()); 113            return 1; 114        } 115 - 116        return Command::SUCCESS; + 116        return Command::SUCCESS; 117    } 118 119 @@ -563,21 +563,21 @@ 124     */ 125    protected function loadProjectComposerPackage(InputInterface $input): void 126    { - 127        $this->logger->info('Loading config...'); + 127        $this->logger->info('Loading config...'); 128 - 129        $this->projectComposerPackage = new ProjectComposerPackage($this->workingDir); + 129        $this->projectComposerPackage = new ProjectComposerPackage($this->workingDir); 130 - 131        $config = $this->projectComposerPackage->getStraussConfig($input); + 131        $config = $this->projectComposerPackage->getStraussConfig($input); 132 - 133        if ($input->hasOption('deleteVendorPackages')) { + 133        if ($input->hasOption('deleteVendorPackages')) { 134            $isDeleteVendorPackagesCommandLine = $input->getOption('deleteVendorPackages') === 'true'; 135            $config->setDeleteVendorPackages($isDeleteVendorPackagesCommandLine); - 136        } elseif ($input->hasOption('delete_vendor_packages')) { + 136        } elseif ($input->hasOption('delete_vendor_packages')) { 137            $isDeleteVendorPackagesCommandLine = $input->getOption('delete_vendor_packages') === 'true'; 138            $config->setDeleteVendorPackages($isDeleteVendorPackagesCommandLine); 139        } 140 - 141        $this->config = $config; + 141        $this->config = $config; 142 143        // TODO: Print the config that Strauss is using. 144        // Maybe even highlight what is default config and what is custom config. @@ -595,11 +595,11 @@ 156     */ 157    protected function buildDependencyList(): void 158    { - 159        $this->logger->info('Building dependency list...'); + 159        $this->logger->info('Building dependency list...'); 160 - 161        $requiredPackageNames = $this->config->getPackages(); + 161        $requiredPackageNames = $this->config->getPackages(); 162 - 163        $this->recursiveGetAllDependencies($requiredPackageNames); + 163        $this->recursiveGetAllDependencies($requiredPackageNames); 164 165        // TODO: Print the dependency tree that Strauss has determined. 166    } @@ -614,27 +614,27 @@ 175     */ 176    protected function recursiveGetAllDependencies(array $requiredPackageNames): void 177    { - 178        $virtualPackages = $this->virtualPackages; + 178        $virtualPackages = $this->virtualPackages; 179 180        // Unset PHP, ext-*, ... 181        // TODO: I think this code is unnecessary due to how the path to packages is handled (null is fine) later. - 182        $removePhpExt = function (string $element) use ($virtualPackages) { - 183            return !( - 184                0 === strpos($element, 'ext') - 185                || 'php' === $element - 186                || in_array($element, $virtualPackages) - 187            ); - 188        }; - 189        $requiredPackageNames = array_filter($requiredPackageNames, $removePhpExt); + 182        $removePhpExt = function (string $element) use ($virtualPackages) { + 183            return !( + 184                0 === strpos($element, 'ext') + 185                || 'php' === $element + 186                || in_array($element, $virtualPackages) + 187            ); + 188        }; + 189        $requiredPackageNames = array_filter($requiredPackageNames, $removePhpExt); 190 - 191        foreach ($requiredPackageNames as $requiredPackageName) { - 192            $packageComposerFile = $this->workingDir . $this->config->getVendorDirectory() - 193                                   . $requiredPackageName . DIRECTORY_SEPARATOR . 'composer.json'; + 191        foreach ($requiredPackageNames as $requiredPackageName) { + 192            $packageComposerFile = $this->workingDir . $this->config->getVendorDirectory() + 193                                   . $requiredPackageName . DIRECTORY_SEPARATOR . 'composer.json'; 194 - 195            $overrideAutoload = $this->config->getOverrideAutoload()[ $requiredPackageName ] ?? null; + 195            $overrideAutoload = $this->config->getOverrideAutoload()[ $requiredPackageName ] ?? null; 196 - 197            if (file_exists($packageComposerFile)) { - 198                $requiredComposerPackage = ComposerPackage::fromFile($packageComposerFile, $overrideAutoload); + 197            if (file_exists($packageComposerFile)) { + 198                $requiredComposerPackage = ComposerPackage::fromFile($packageComposerFile, $overrideAutoload); 199            } else { 200                $fileContents           = file_get_contents($this->workingDir . 'composer.lock'); 201                if (false === $fileContents) { @@ -656,14 +656,14 @@ 217                $requiredComposerPackage = ComposerPackage::fromComposerJsonArray($requiredPackageComposerJson, $overrideAutoload); 218            } 219 - 220            if (isset($this->flatDependencyTree[$requiredComposerPackage->getPackageName()])) { + 220            if (isset($this->flatDependencyTree[$requiredComposerPackage->getPackageName()])) { 221                continue; 222            } 223 - 224            $this->flatDependencyTree[$requiredComposerPackage->getPackageName()] = $requiredComposerPackage; - 225            $nextRequiredPackageNames                                             = $requiredComposerPackage->getRequiresNames(); + 224            $this->flatDependencyTree[$requiredComposerPackage->getPackageName()] = $requiredComposerPackage; + 225            $nextRequiredPackageNames                                             = $requiredComposerPackage->getRequiresNames(); 226 - 227            $this->recursiveGetAllDependencies($nextRequiredPackageNames); + 227            $this->recursiveGetAllDependencies($nextRequiredPackageNames); 228        } 229    } 230 @@ -671,73 +671,73 @@ 232 233    protected function enumerateFiles(): void 234    { - 235        $this->logger->info('Enumerating files...'); + 235        $this->logger->info('Enumerating files...'); 236 - 237        $this->fileEnumerator = new FileEnumerator( - 238            $this->flatDependencyTree, - 239            $this->workingDir, - 240            $this->config - 241        ); + 237        $this->fileEnumerator = new FileEnumerator( + 238            $this->flatDependencyTree, + 239            $this->workingDir, + 240            $this->config + 241        ); 242 - 243        $this->fileEnumerator->compileFileList(); + 243        $this->fileEnumerator->compileFileList(); 244    } 245 246    // 3. Copy autoloaded files for each 247    protected function copyFiles(): void 248    { - 249        if ($this->config->getTargetDirectory() === $this->config->getVendorDirectory()) { + 249        if ($this->config->getTargetDirectory() === $this->config->getVendorDirectory()) { 250            // Nothing to do. 251            return; 252        } 253 - 254        $this->logger->info('Copying files...'); + 254        $this->logger->info('Copying files...'); 255 - 256        $this->copier = new Copier( - 257            $this->fileEnumerator->getAllFilesAndDependencyList(), - 258            $this->workingDir, - 259            $this->config->getTargetDirectory(), - 260            $this->config->getVendorDirectory() - 261        ); + 256        $this->copier = new Copier( + 257            $this->fileEnumerator->getAllFilesAndDependencyList(), + 258            $this->workingDir, + 259            $this->config->getTargetDirectory(), + 260            $this->config->getVendorDirectory() + 261        ); 262 - 263        $this->copier->prepareTarget(); + 263        $this->copier->prepareTarget(); 264 - 265        $this->copier->copy(); + 265        $this->copier->copy(); 266    } 267 268    // 4. Determine namespace and classname changes 269    protected function determineChanges(): void 270    { - 271        $this->logger->info('Determining changes...'); + 271        $this->logger->info('Determining changes...'); 272 - 273        $this->changeEnumerator = new ChangeEnumerator($this->config); + 273        $this->changeEnumerator = new ChangeEnumerator($this->config); 274 - 275        $absoluteTargetDir = $this->workingDir . $this->config->getTargetDirectory(); - 276        $phpFiles = $this->fileEnumerator->getPhpFilesAndDependencyList(); - 277        $this->changeEnumerator->findInFiles($absoluteTargetDir, $phpFiles); + 275        $absoluteTargetDir = $this->workingDir . $this->config->getTargetDirectory(); + 276        $phpFiles = $this->fileEnumerator->getPhpFilesAndDependencyList(); + 277        $this->changeEnumerator->findInFiles($absoluteTargetDir, $phpFiles); 278    } 279 280    // 5. Update namespaces and class names. 281    // Replace references to updated namespaces and classnames throughout the dependencies. 282    protected function performReplacements(): void 283    { - 284        $this->logger->info('Performing replacements...'); + 284        $this->logger->info('Performing replacements...'); 285 - 286        $this->replacer = new Prefixer($this->config, $this->workingDir); + 286        $this->replacer = new Prefixer($this->config, $this->workingDir); 287 - 288        $namespaces = $this->changeEnumerator->getDiscoveredNamespaces($this->config->getNamespacePrefix()); - 289        $classes = $this->changeEnumerator->getDiscoveredClasses($this->config->getClassmapPrefix()); - 290        $constants = $this->changeEnumerator->getDiscoveredConstants($this->config->getConstantsPrefix()); + 288        $namespaces = $this->changeEnumerator->getDiscoveredNamespaces($this->config->getNamespacePrefix()); + 289        $classes = $this->changeEnumerator->getDiscoveredClasses($this->config->getClassmapPrefix()); + 290        $constants = $this->changeEnumerator->getDiscoveredConstants($this->config->getConstantsPrefix()); 291         - 292        $phpFiles = $this->fileEnumerator->getPhpFilesAndDependencyList(); + 292        $phpFiles = $this->fileEnumerator->getPhpFilesAndDependencyList(); 293 - 294        $this->replacer->replaceInFiles($namespaces, $classes, $constants, $phpFiles); + 294        $this->replacer->replaceInFiles($namespaces, $classes, $constants, $phpFiles); 295    } 296 297    protected function performReplacementsInComposerFiles(): void 298    { - 299        if ($this->config->getTargetDirectory() !== $this->config->getVendorDirectory()) { + 299        if ($this->config->getTargetDirectory() !== $this->config->getVendorDirectory()) { 300            // Nothing to do. - 301            return; + 301            return; 302        } 303 304        $projectReplace = new Prefixer($this->config, $this->workingDir); @@ -757,12 +757,12 @@ 318    protected function performReplacementsInProjectFiles(): void 319    { 320 - 321        $callSitePaths = - 322            $this->config->getUpdateCallSites() - 323            ?? $this->projectComposerPackage->getFlatAutoloadKey(); + 321        $callSitePaths = + 322            $this->config->getUpdateCallSites() + 323            ?? $this->projectComposerPackage->getFlatAutoloadKey(); 324 - 325        if (empty($callSitePaths)) { - 326            return; + 325        if (empty($callSitePaths)) { + 326            return; 327        } 328 329        $projectReplace = new Prefixer($this->config, $this->workingDir); @@ -788,18 +788,18 @@ 349 350    protected function addLicenses(): void 351    { - 352        $this->logger->info('Adding licenses...'); + 352        $this->logger->info('Adding licenses...'); 353 - 354        $author = $this->projectComposerPackage->getAuthor(); + 354        $author = $this->projectComposerPackage->getAuthor(); 355 - 356        $dependencies = $this->flatDependencyTree; + 356        $dependencies = $this->flatDependencyTree; 357 - 358        $licenser = new Licenser($this->config, $this->workingDir, $dependencies, $author); + 358        $licenser = new Licenser($this->config, $this->workingDir, $dependencies, $author); 359 - 360        $licenser->copyLicenses(); + 360        $licenser->copyLicenses(); 361 - 362        $modifiedFiles = $this->replacer->getModifiedFiles(); - 363        $licenser->addInformationToUpdatedFiles($modifiedFiles); + 362        $modifiedFiles = $this->replacer->getModifiedFiles(); + 363        $licenser->addInformationToUpdatedFiles($modifiedFiles); 364    } 365 366    /** @@ -807,18 +807,18 @@ 368     */ 369    protected function generateAutoloader(): void 370    { - 371        if ($this->config->getTargetDirectory() === $this->config->getVendorDirectory()) { + 371        if ($this->config->getTargetDirectory() === $this->config->getVendorDirectory()) { 372            // Nothing to do. 373            return; 374        } 375 - 376        $this->logger->info('Generating autoloader...'); + 376        $this->logger->info('Generating autoloader...'); 377 - 378        $files = $this->fileEnumerator->getFilesAutoloaders(); + 378        $files = $this->fileEnumerator->getFilesAutoloaders(); 379 - 380        $classmap = new Autoload($this->config, $this->workingDir, $files); + 380        $classmap = new Autoload($this->config, $this->workingDir, $files); 381 - 382        $classmap->generate(); + 382        $classmap->generate(); 383    } 384 385    /** @@ -836,21 +836,21 @@ 397     */ 398    protected function cleanUp(): void 399    { - 400        if ($this->config->getTargetDirectory() === $this->config->getVendorDirectory()) { + 400        if ($this->config->getTargetDirectory() === $this->config->getVendorDirectory()) { 401            // Nothing to do. 402            return; 403        } 404 - 405        $this->logger->info('Cleaning up...'); + 405        $this->logger->info('Cleaning up...'); 406 - 407        $cleanup = new Cleanup($this->config, $this->workingDir); + 407        $cleanup = new Cleanup($this->config, $this->workingDir); 408 - 409        $sourceFiles = array_keys($this->fileEnumerator->getAllFilesAndDependencyList()); + 409        $sourceFiles = array_keys($this->fileEnumerator->getAllFilesAndDependencyList()); 410 411        // TODO: For files autoloaders, delete the contents of the file, not the file itself. 412 413        // This will check the config to check should it delete or not. - 414        $cleanup->cleanup($sourceFiles); + 414        $cleanup->cleanup($sourceFiles); 415    } 416} @@ -863,7 +863,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Console/Commands/dashboard.html b/Console/Commands/dashboard.html index 7f820f9..d2e0678 100644 --- a/Console/Commands/dashboard.html +++ b/Console/Commands/dashboard.html @@ -59,7 +59,7 @@

Insufficient Coverage

-
BrianHenryIE\Strauss\Console\Commands\Compose73% + BrianHenryIE\Strauss\Console\Commands\Compose17% @@ -76,7 +76,7 @@

Project Risks

- BrianHenryIE\Strauss\Console\Commands\Compose57 + BrianHenryIE\Strauss\Console\Commands\Compose712 @@ -114,13 +114,20 @@

Insufficient Coverage

+ buildDependencyList0% + recursiveGetAllDependencies0% + enumerateFiles0% + copyFiles0% + determineChanges0% + performReplacements0% + performReplacementsInComposerFiles0% + performReplacementsInProjectFiles0% + addLicenses0% + generateAutoloader0% generateClassAliasList0% - performReplacementsInComposerFiles18% - performReplacementsInProjectFiles27% - recursiveGetAllDependencies59% - loadProjectComposerPackage60% - generateAutoloader83% - cleanUp83% + cleanUp0% + loadProjectComposerPackage20% + execute52% @@ -137,12 +144,14 @@

Project Risks

- recursiveGetAllDependencies16 - performReplacementsInProjectFiles14 - performReplacementsInComposerFiles4 - loadProjectComposerPackage3 - generateAutoloader2 - cleanUp2 + recursiveGetAllDependencies110 + performReplacementsInProjectFiles30 + loadProjectComposerPackage7 + copyFiles6 + performReplacementsInComposerFiles6 + generateAutoloader6 + cleanUp6 + execute2 @@ -152,7 +161,7 @@

Project Risks

@@ -171,7 +180,7 @@

Project Risks

.yAxis.tickFormat(d3.format('d')); d3.select('#classCoverageDistribution svg') - .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,1,0,0,0], "Class Coverage")) + .datum(getCoverageDistributionData([0,0,1,0,0,0,0,0,0,0,0,0], "Class Coverage")) .transition().duration(500).call(chart); nv.utils.windowResize(chart.update); @@ -189,7 +198,7 @@

Project Risks

.yAxis.tickFormat(d3.format('d')); d3.select('#methodCoverageDistribution svg') - .datum(getCoverageDistributionData([1,0,1,1,0,0,1,1,0,2,1,7], "Method Coverage")) + .datum(getCoverageDistributionData([12,0,0,1,0,0,1,0,0,0,0,1], "Method Coverage")) .transition().duration(500).call(chart); nv.utils.windowResize(chart.update); @@ -239,7 +248,7 @@

Project Risks

chart.yAxis.axisLabel('Cyclomatic Complexity'); d3.select('#classComplexity svg') - .datum(getComplexityData([[73.4567901234568,35,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose<\/a>"]], 'Class Complexity')) + .datum(getComplexityData([[17.901234567901234,35,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose<\/a>"]], 'Class Complexity')) .transition() .duration(500) .call(chart); @@ -263,7 +272,7 @@

Project Risks

chart.yAxis.axisLabel('Method Complexity'); d3.select('#methodComplexity svg') - .datum(getComplexityData([[100,1,"
BrianHenryIE\\Strauss\\Console\\Commands\\Compose::configure<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::execute<\/a>"],[60,3,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::loadProjectComposerPackage<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::buildDependencyList<\/a>"],[59.375,10,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::recursiveGetAllDependencies<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::enumerateFiles<\/a>"],[90.9090909090909,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::copyFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::determineChanges<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacements<\/a>"],[18.181818181818183,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInComposerFiles<\/a>"],[27.77777777777778,5,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInProjectFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::addLicenses<\/a>"],[83.33333333333334,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateAutoloader<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateClassAliasList<\/a>"],[83.33333333333334,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::cleanUp<\/a>"]], 'Method Complexity')) + .datum(getComplexityData([[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::configure<\/a>"],[52.17391304347826,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::execute<\/a>"],[20,3,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::loadProjectComposerPackage<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::buildDependencyList<\/a>"],[0,10,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::recursiveGetAllDependencies<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::enumerateFiles<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::copyFiles<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::determineChanges<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacements<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInComposerFiles<\/a>"],[0,5,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInProjectFiles<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::addLicenses<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateAutoloader<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateClassAliasList<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::cleanUp<\/a>"]], 'Method Complexity')) .transition() .duration(500) .call(chart); diff --git a/Console/Commands/index.html b/Console/Commands/index.html index 18789a1..031d3ff 100644 --- a/Console/Commands/index.html +++ b/Console/Commands/index.html @@ -44,23 +44,23 @@ - Total -
-
- 73.46% covered (warning) + Total +
+
+ 17.90% covered (danger)
-
73.46%
-
119 / 162
+
17.90%
+
29 / 162
-
- 46.67% covered (danger) +
+ 6.67% covered (danger)
-
46.67%
-
7 / 15
+
6.67%
+
1 / 15
0.00% covered (danger) @@ -72,23 +72,23 @@ - Compose.php -
-
- 73.46% covered (warning) + Compose.php +
+
+ 17.90% covered (danger)
-
73.46%
-
119 / 162
+
17.90%
+
29 / 162
-
- 46.67% covered (danger) +
+ 6.67% covered (danger)
-
46.67%
-
7 / 15
+
6.67%
+
1 / 15
0.00% covered (danger) @@ -112,7 +112,7 @@

Legend

High: 90% to 100%

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Console/dashboard.html b/Console/dashboard.html index beb5e52..ed12d1d 100644 --- a/Console/dashboard.html +++ b/Console/dashboard.html @@ -58,7 +58,7 @@

Insufficient Coverage

- BrianHenryIE\Strauss\Console\Commands\Compose73% + BrianHenryIE\Strauss\Console\Commands\Compose17% @@ -75,7 +75,7 @@

Project Risks

- BrianHenryIE\Strauss\Console\Commands\Compose57 + BrianHenryIE\Strauss\Console\Commands\Compose712 @@ -113,13 +113,20 @@

Insufficient Coverage

+ buildDependencyList0% + recursiveGetAllDependencies0% + enumerateFiles0% + copyFiles0% + determineChanges0% + performReplacements0% + performReplacementsInComposerFiles0% + performReplacementsInProjectFiles0% + addLicenses0% + generateAutoloader0% generateClassAliasList0% - performReplacementsInComposerFiles18% - performReplacementsInProjectFiles27% - recursiveGetAllDependencies59% - loadProjectComposerPackage60% - generateAutoloader83% - cleanUp83% + cleanUp0% + loadProjectComposerPackage20% + execute52% @@ -136,12 +143,14 @@

Project Risks

- recursiveGetAllDependencies16 - performReplacementsInProjectFiles14 - performReplacementsInComposerFiles4 - loadProjectComposerPackage3 - generateAutoloader2 - cleanUp2 + recursiveGetAllDependencies110 + performReplacementsInProjectFiles30 + loadProjectComposerPackage7 + copyFiles6 + performReplacementsInComposerFiles6 + generateAutoloader6 + cleanUp6 + execute2 @@ -151,7 +160,7 @@

Project Risks

@@ -170,7 +179,7 @@

Project Risks

.yAxis.tickFormat(d3.format('d')); d3.select('#classCoverageDistribution svg') - .datum(getCoverageDistributionData([0,0,0,0,0,0,0,0,1,0,0,1], "Class Coverage")) + .datum(getCoverageDistributionData([0,0,1,0,0,0,0,0,0,0,0,1], "Class Coverage")) .transition().duration(500).call(chart); nv.utils.windowResize(chart.update); @@ -188,7 +197,7 @@

Project Risks

.yAxis.tickFormat(d3.format('d')); d3.select('#methodCoverageDistribution svg') - .datum(getCoverageDistributionData([1,0,1,1,0,0,1,1,0,2,1,8], "Method Coverage")) + .datum(getCoverageDistributionData([12,0,0,1,0,0,1,0,0,0,0,2], "Method Coverage")) .transition().duration(500).call(chart); nv.utils.windowResize(chart.update); @@ -238,7 +247,7 @@

Project Risks

chart.yAxis.axisLabel('Cyclomatic Complexity'); d3.select('#classComplexity svg') - .datum(getComplexityData([[100,1,"BrianHenryIE\\Strauss\\Console\\Application<\/a>"],[73.4567901234568,35,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose<\/a>"]], 'Class Complexity')) + .datum(getComplexityData([[100,1,"BrianHenryIE\\Strauss\\Console\\Application<\/a>"],[17.901234567901234,35,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose<\/a>"]], 'Class Complexity')) .transition() .duration(500) .call(chart); @@ -262,7 +271,7 @@

Project Risks

chart.yAxis.axisLabel('Method Complexity'); d3.select('#methodComplexity svg') - .datum(getComplexityData([[100,1,"
BrianHenryIE\\Strauss\\Console\\Application::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::configure<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::execute<\/a>"],[60,3,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::loadProjectComposerPackage<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::buildDependencyList<\/a>"],[59.375,10,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::recursiveGetAllDependencies<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::enumerateFiles<\/a>"],[90.9090909090909,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::copyFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::determineChanges<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacements<\/a>"],[18.181818181818183,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInComposerFiles<\/a>"],[27.77777777777778,5,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInProjectFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::addLicenses<\/a>"],[83.33333333333334,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateAutoloader<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateClassAliasList<\/a>"],[83.33333333333334,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::cleanUp<\/a>"]], 'Method Complexity')) + .datum(getComplexityData([[100,1,"BrianHenryIE\\Strauss\\Console\\Application::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::configure<\/a>"],[52.17391304347826,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::execute<\/a>"],[20,3,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::loadProjectComposerPackage<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::buildDependencyList<\/a>"],[0,10,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::recursiveGetAllDependencies<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::enumerateFiles<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::copyFiles<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::determineChanges<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacements<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInComposerFiles<\/a>"],[0,5,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInProjectFiles<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::addLicenses<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateAutoloader<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateClassAliasList<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::cleanUp<\/a>"]], 'Method Complexity')) .transition() .duration(500) .call(chart); diff --git a/Console/index.html b/Console/index.html index 76f8c5d..418fa9d 100644 --- a/Console/index.html +++ b/Console/index.html @@ -43,23 +43,23 @@ - Total -
-
- 74.10% covered (warning) + Total +
+
+ 19.88% covered (danger)
-
74.10%
-
123 / 166
+
19.88%
+
33 / 166
-
- 50.00% covered (danger) +
+ 12.50% covered (danger)
-
50.00%
-
8 / 16
+
12.50%
+
2 / 16
50.00% covered (danger) @@ -71,23 +71,23 @@ - Commands -
-
- 73.46% covered (warning) + Commands +
+
+ 17.90% covered (danger)
-
73.46%
-
119 / 162
+
17.90%
+
29 / 162
-
- 46.67% covered (danger) +
+ 6.67% covered (danger)
-
46.67%
-
7 / 15
+
6.67%
+
1 / 15
0.00% covered (danger) @@ -139,7 +139,7 @@

Legend

High: 90% to 100%

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Copier.php.html b/Copier.php.html index f13f108..0d832ca 100644 --- a/Copier.php.html +++ b/Copier.php.html @@ -42,24 +42,24 @@ - Total -
-
- 73.33% covered (warning) + Total +
+
+ 0.00% covered (danger)
-
73.33%
-
11 / 15
-
-
- 66.67% covered (warning) +
0.00%
+
0 / 15
+
+
+ 0.00% covered (danger)
-
66.67%
-
2 / 3
- CRAP +
0.00%
+
0 / 3
+ CRAP
0.00% covered (danger) @@ -71,24 +71,24 @@ - Copier -
-
- 73.33% covered (warning) + Copier +
+
+ 0.00% covered (danger)
-
73.33%
-
11 / 15
-
-
- 66.67% covered (warning) +
0.00%
+
0 / 15
+
+
+ 0.00% covered (danger)
-
66.67%
-
2 / 3
- 7.93 +
0.00%
+
0 / 3
+ 56
0.00% covered (danger) @@ -100,37 +100,37 @@ -  __construct -
-
- 100.00% covered (success) +  __construct +
+
+ 0.00% covered (danger)
-
100.00%
-
5 / 5
-
-
- 100.00% covered (success) +
0.00%
+
0 / 5
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 +  prepareTarget
-
- 33.33% covered (danger) +
+ 0.00% covered (danger)
-
33.33%
-
2 / 6
+
0.00%
+
0 / 6
0.00% covered (danger) @@ -139,30 +139,30 @@
0.00%
0 / 1
- 8.74 + 20 -  copy -
-
- 100.00% covered (success) +  copy +
+
+ 0.00% covered (danger)
-
100.00%
-
4 / 4
-
-
- 100.00% covered (success) +
0.00%
+
0 / 4
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 2 - +
0.00%
+
0 / 1
+ 6 + @@ -221,15 +221,15 @@ 48     */ 49    public function __construct(array $files, string $workingDir, string $relativeTargetDir, string $vendorDir) 50    { - 51        $this->files = $files; + 51        $this->files = $files; 52 - 53        $this->workingDir = $workingDir; + 53        $this->workingDir = $workingDir; 54 - 55        $this->absoluteTargetDir = $workingDir . $relativeTargetDir; + 55        $this->absoluteTargetDir = $workingDir . $relativeTargetDir; 56 - 57        $this->vendorDir = $vendorDir; + 57        $this->vendorDir = $vendorDir; 58 - 59        $this->filesystem = new Filesystem(new LocalFilesystemAdapter('/')); + 59        $this->filesystem = new Filesystem(new LocalFilesystemAdapter('/')); 60    } 61 62    /** @@ -240,8 +240,8 @@ 67     */ 68    public function prepareTarget(): void 69    { - 70        if (! is_dir($this->absoluteTargetDir)) { - 71            $this->filesystem->createDirectory($this->absoluteTargetDir); + 70        if (! is_dir($this->absoluteTargetDir)) { + 71            $this->filesystem->createDirectory($this->absoluteTargetDir); 72        } else { 73            foreach (array_keys($this->files) as $targetRelativeFilepath) { 74                $targetAbsoluteFilepath = $this->absoluteTargetDir . $targetRelativeFilepath; @@ -260,12 +260,12 @@ 87    public function copy(): void 88    { 89 - 90        foreach ($this->files as $targetRelativeFilepath => $fileArray) { - 91            $sourceAbsoluteFilepath = $fileArray['sourceAbsoluteFilepath']; + 90        foreach ($this->files as $targetRelativeFilepath => $fileArray) { + 91            $sourceAbsoluteFilepath = $fileArray['sourceAbsoluteFilepath']; 92 - 93            $targetAbsolutePath = $this->absoluteTargetDir . $targetRelativeFilepath; + 93            $targetAbsolutePath = $this->absoluteTargetDir . $targetRelativeFilepath; 94 - 95            $this->filesystem->copy($sourceAbsoluteFilepath, $targetAbsolutePath); + 95            $this->filesystem->copy($sourceAbsoluteFilepath, $targetAbsolutePath); 96        } 97    } 98} @@ -279,7 +279,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/FileEnumerator.php.html b/FileEnumerator.php.html index 5a5942e..c2c19f6 100644 --- a/FileEnumerator.php.html +++ b/FileEnumerator.php.html @@ -42,24 +42,24 @@ - Total -
-
- 65.85% covered (warning) + Total +
+
+ 0.00% covered (danger)
-
65.85%
-
54 / 82
-
-
- 66.67% covered (warning) +
0.00%
+
0 / 82
+
+
+ 0.00% covered (danger)
-
66.67%
-
4 / 6
- CRAP +
0.00%
+
0 / 6
+ CRAP
0.00% covered (danger) @@ -71,24 +71,24 @@ - FileEnumerator -
-
- 65.85% covered (warning) + FileEnumerator +
+
+ 0.00% covered (danger)
-
65.85%
-
54 / 82
-
-
- 66.67% covered (warning) +
0.00%
+
0 / 82
+
+
+ 0.00% covered (danger)
-
66.67%
-
4 / 6
- 62.48 +
0.00%
+
0 / 6
+ 870
0.00% covered (danger) @@ -100,37 +100,37 @@ -  __construct -
-
- 100.00% covered (success) +  __construct +
+
+ 0.00% covered (danger)
-
100.00%
-
7 / 7
-
-
- 100.00% covered (success) +
0.00%
+
0 / 7
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  compileFileList -
-
- 66.67% covered (warning) +  compileFileList +
+
+ 0.00% covered (danger)
-
66.67%
-
42 / 63
+
0.00%
+
0 / 63
0.00% covered (danger) @@ -139,74 +139,74 @@
0.00%
0 / 1
- 42.59 + 552 -  getAllFilesAndDependencyList -
-
- 100.00% covered (success) +  getAllFilesAndDependencyList +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  getPhpFilesAndDependencyList -
-
- 100.00% covered (success) +  getPhpFilesAndDependencyList +
+
+ 0.00% covered (danger)
-
100.00%
-
3 / 3
-
-
- 100.00% covered (success) +
0.00%
+
0 / 3
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  getFilesAutoloaders -
-
- 100.00% covered (success) +  getFilesAutoloaders +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -310,16 +310,16 @@ 71        string $workingDir, 72        StraussConfig $config 73    ) { - 74        $this->workingDir = $workingDir; - 75        $this->vendorDir = $config->getVendorDirectory(); + 74        $this->workingDir = $workingDir; + 75        $this->vendorDir = $config->getVendorDirectory(); 76 - 77        $this->dependencies = $dependencies; + 77        $this->dependencies = $dependencies; 78 - 79        $this->excludeNamespaces = $config->getExcludeNamespacesFromCopy(); - 80        $this->excludePackageNames = $config->getExcludePackagesFromCopy(); - 81        $this->excludeFilePatterns = $config->getExcludeFilePatternsFromCopy(); + 79        $this->excludeNamespaces = $config->getExcludeNamespacesFromCopy(); + 80        $this->excludePackageNames = $config->getExcludePackagesFromCopy(); + 81        $this->excludeFilePatterns = $config->getExcludeFilePatternsFromCopy(); 82 - 83        $this->filesystem = new Filesystem(new LocalFilesystemAdapter($this->workingDir)); + 83        $this->filesystem = new Filesystem(new LocalFilesystemAdapter($this->workingDir)); 84    } 85 86    /** @@ -328,14 +328,14 @@ 89    public function compileFileList(): void 90    { 91 - 92        $prefixToRemove = $this->workingDir . $this->vendorDir; + 92        $prefixToRemove = $this->workingDir . $this->vendorDir; 93 - 94        foreach ($this->dependencies as $dependency) { - 95            if (in_array($dependency->getPackageName(), $this->excludePackageNames)) { + 94        foreach ($this->dependencies as $dependency) { + 95            if (in_array($dependency->getPackageName(), $this->excludePackageNames)) { 96                continue; 97            } 98 - 99            $packageAbsolutePath = $dependency->getPackageAbsolutePath(); + 99            $packageAbsolutePath = $dependency->getPackageAbsolutePath(); 100 101            /** 102             * Where $dependency->autoload is ~ @@ -344,30 +344,30 @@ 105             * Exclude "exclude-from-classmap" 106             * @see https://getcomposer.org/doc/04-schema.md#exclude-files-from-classmaps 107             */ - 108            $autoloaders = array_filter($dependency->getAutoload(), function ($type) { - 109                return 'exclude-from-classmap' !== $type; - 110            }, ARRAY_FILTER_USE_KEY); + 108            $autoloaders = array_filter($dependency->getAutoload(), function ($type) { + 109                return 'exclude-from-classmap' !== $type; + 110            }, ARRAY_FILTER_USE_KEY); 111 - 112            foreach ($autoloaders as $type => $value) { + 112            foreach ($autoloaders as $type => $value) { 113                // Might have to switch/case here. 114 - 115                if ('files' === $type) { + 115                if ('files' === $type) { 116                    $this->filesAutoloaders[$dependency->getRelativePath()] = $value; 117                } 118 - 119                foreach ($value as $namespace => $namespace_relative_paths) { - 120                    if (!empty($namespace) && in_array($namespace, $this->excludeNamespaces)) { + 119                foreach ($value as $namespace => $namespace_relative_paths) { + 120                    if (!empty($namespace) && in_array($namespace, $this->excludeNamespaces)) { 121                        continue; 122                    } 123 - 124                    if (! is_array($namespace_relative_paths)) { - 125                        $namespace_relative_paths = array( $namespace_relative_paths ); + 124                    if (! is_array($namespace_relative_paths)) { + 125                        $namespace_relative_paths = array( $namespace_relative_paths ); 126                    } 127 - 128                    foreach ($namespace_relative_paths as $namespace_relative_path) { - 129                        $sourceAbsolutePath = $packageAbsolutePath . $namespace_relative_path; - 130                        $sourceRelativePath = $this->vendorDir . $dependency->getRelativePath() . DIRECTORY_SEPARATOR . $namespace_relative_path; - 131                        if (is_file($sourceAbsolutePath)) { + 128                    foreach ($namespace_relative_paths as $namespace_relative_path) { + 129                        $sourceAbsolutePath = $packageAbsolutePath . $namespace_relative_path; + 130                        $sourceRelativePath = $this->vendorDir . $dependency->getRelativePath() . DIRECTORY_SEPARATOR . $namespace_relative_path; + 131                        if (is_file($sourceAbsolutePath)) { 132                            $outputRelativeFilepath = $dependency->getRelativePath() . DIRECTORY_SEPARATOR . $namespace_relative_path; 133 134                            foreach ($this->excludeFilePatterns as $excludePattern) { @@ -389,64 +389,64 @@ 150                                'targetRelativeFilepath' => $outputRelativeFilepath, 151                            ); 152                            $this->filesWithDependencies[ $outputRelativeFilepath ] = $file; - 153                        } elseif (is_dir($sourceAbsolutePath)) { + 153                        } elseif (is_dir($sourceAbsolutePath)) { 154                            // trailingslashit(). - 155                            $namespace_relative_path = rtrim($namespace_relative_path, DIRECTORY_SEPARATOR) - 156                                                       . DIRECTORY_SEPARATOR; + 155                            $namespace_relative_path = rtrim($namespace_relative_path, DIRECTORY_SEPARATOR) + 156                                                       . DIRECTORY_SEPARATOR; 157 - 158                            $sourcePath = $packageAbsolutePath . $namespace_relative_path; + 158                            $sourcePath = $packageAbsolutePath . $namespace_relative_path; 159 160                            // trailingslashit(). (to remove duplicates). - 161                            $sourcePath = rtrim($sourcePath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; + 161                            $sourcePath = rtrim($sourcePath, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; 162 - 163                            $finder = new Finder(); - 164                            $finder->files()->in($sourcePath)->followLinks(); + 163                            $finder = new Finder(); + 164                            $finder->files()->in($sourcePath)->followLinks(); 165 - 166                            foreach ($finder as $foundFile) { - 167                                $sourceAbsoluteFilepath = $foundFile->getPathname(); - 168                                $sourceRelativeFilePath = str_replace(rtrim($sourcePath, DIRECTORY_SEPARATOR), rtrim($sourceRelativePath, DIRECTORY_SEPARATOR), $sourceAbsoluteFilepath); - 169                                $outputRelativeFilepath = str_replace($prefixToRemove, '', $sourceAbsoluteFilepath); + 166                            foreach ($finder as $foundFile) { + 167                                $sourceAbsoluteFilepath = $foundFile->getPathname(); + 168                                $sourceRelativeFilePath = str_replace(rtrim($sourcePath, DIRECTORY_SEPARATOR), rtrim($sourceRelativePath, DIRECTORY_SEPARATOR), $sourceAbsoluteFilepath); + 169                                $outputRelativeFilepath = str_replace($prefixToRemove, '', $sourceAbsoluteFilepath); 170 171                                // For symlinked packages. - 172                                if ($outputRelativeFilepath == $sourceAbsoluteFilepath) { - 173                                    $outputRelativeFilepath = str_replace($packageAbsolutePath, $dependency->getPackageName() . DIRECTORY_SEPARATOR, $sourceAbsoluteFilepath); + 172                                if ($outputRelativeFilepath == $sourceAbsoluteFilepath) { + 173                                    $outputRelativeFilepath = str_replace($packageAbsolutePath, $dependency->getPackageName() . DIRECTORY_SEPARATOR, $sourceAbsoluteFilepath); 174                                } 175 176                                // TODO: Is this needed here?! If anything, it's the prefix that needs to be normalised a few 177                                // lines above before being used. 178                                // Replace multiple \ and/or / with OS native DIRECTORY_SEPARATOR. - 179                                $outputRelativeFilepath = preg_replace('#[\\\/]+#', DIRECTORY_SEPARATOR, $outputRelativeFilepath); - 180                                if (is_null($outputRelativeFilepath)) { + 179                                $outputRelativeFilepath = preg_replace('#[\\\/]+#', DIRECTORY_SEPARATOR, $outputRelativeFilepath); + 180                                if (is_null($outputRelativeFilepath)) { 181                                    throw new \Exception('Error replacing directory separator in outputRelativeFilepath.'); 182                                } 183 - 184                                foreach ($this->excludeFilePatterns as $excludePattern) { + 184                                foreach ($this->excludeFilePatterns as $excludePattern) { 185                                    if (1 === preg_match($excludePattern, $outputRelativeFilepath)) { 186                                        continue 2; 187                                    } 188                                } 189 - 190                                if (is_dir($sourceAbsoluteFilepath)) { + 190                                if (is_dir($sourceAbsoluteFilepath)) { 191                                    continue; 192                                } 193 - 194                                if (!$this->filesystem->fileExists($sourceRelativeFilePath)) { + 194                                if (!$this->filesystem->fileExists($sourceRelativeFilePath)) { 195                                    continue; 196                                } 197 198                                if ('<?php // This file was deleted by {@see https://github.com/BrianHenryIE/strauss}.' 199                                    === - 200                                    $this->filesystem->read($sourceRelativeFilePath) + 200                                    $this->filesystem->read($sourceRelativeFilePath) 201                                ) { 202                                    continue; 203                                } 204 - 205                                $file                                                   = array( - 206                                    'dependency'             => $dependency, - 207                                    'sourceAbsoluteFilepath' => $sourceAbsoluteFilepath, - 208                                    'targetRelativeFilepath' => $outputRelativeFilepath, - 209                                ); - 210                                $this->filesWithDependencies[ $outputRelativeFilepath ] = $file; + 205                                $file                                                   = array( + 206                                    'dependency'             => $dependency, + 207                                    'sourceAbsoluteFilepath' => $sourceAbsoluteFilepath, + 208                                    'targetRelativeFilepath' => $outputRelativeFilepath, + 209                                ); + 210                                $this->filesWithDependencies[ $outputRelativeFilepath ] = $file; 211                            } 212                        } 213                    } @@ -462,7 +462,7 @@ 223     */ 224    public function getAllFilesAndDependencyList(): array 225    { - 226        return $this->filesWithDependencies; + 226        return $this->filesWithDependencies; 227    } 228 229    /** @@ -473,9 +473,9 @@ 234    public function getPhpFilesAndDependencyList(): array 235    { 236        // Filter out non .php files by checking the key. - 237        return array_filter($this->filesWithDependencies, function ($value, $key) { - 238            return false !== strpos($key, '.php'); - 239        }, ARRAY_FILTER_USE_BOTH); + 237        return array_filter($this->filesWithDependencies, function ($value, $key) { + 238            return false !== strpos($key, '.php'); + 239        }, ARRAY_FILTER_USE_BOTH); 240    } 241 242    /** @@ -485,7 +485,7 @@ 246     */ 247    public function getFilesAutoloaders(): array 248    { - 249        return $this->filesAutoloaders; + 249        return $this->filesAutoloaders; 250    } 251 252    /** @@ -517,7 +517,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Licenser.php.html b/Licenser.php.html index 505f263..8ea9d74 100644 --- a/Licenser.php.html +++ b/Licenser.php.html @@ -44,21 +44,21 @@ Total
-
- 87.10% covered (warning) +
+ 69.89% covered (warning)
-
87.10%
-
81 / 93
+
69.89%
+
65 / 93
-
- 50.00% covered (danger) +
+ 33.33% covered (danger)
-
50.00%
-
3 / 6
+
33.33%
+
2 / 6
CRAP
@@ -73,22 +73,22 @@ Licenser
-
- 87.10% covered (warning) +
+ 69.89% covered (warning)
-
87.10%
-
81 / 93
+
69.89%
+
65 / 93
-
- 50.00% covered (danger) +
+ 33.33% covered (danger)
-
50.00%
-
3 / 6
- 27.45 +
33.33%
+
2 / 6
+ 44.45
0.00% covered (danger) @@ -124,13 +124,13 @@  copyLicenses
-
- 16.67% covered (danger) +
+ 0.00% covered (danger)
-
16.67%
-
2 / 12
+
0.00%
+
0 / 12
0.00% covered (danger) @@ -139,7 +139,7 @@
0.00%
0 / 1
- 13.26 + 20 @@ -166,37 +166,37 @@ -  
getDiscoveredLicenseFiles -
-
- 100.00% covered (success) +  getDiscoveredLicenseFiles +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + -  addInformationToUpdatedFiles -
-
- 92.86% covered (success) +  addInformationToUpdatedFiles +
+
+ 0.00% covered (danger)
-
92.86%
-
13 / 14
+
0.00%
+
0 / 14
0.00% covered (danger) @@ -205,7 +205,7 @@
0.00%
0 / 1
- 4.01 + 20 @@ -302,23 +302,23 @@ 63     */ 64    public function __construct(StraussConfig $config, string $workingDir, array $dependencies, string $author) 65    { - 66        $this->workingDir = $workingDir; - 67        $this->dependencies = $dependencies; - 68        $this->author = $author; + 66        $this->workingDir = $workingDir; + 67        $this->dependencies = $dependencies; + 68        $this->author = $author; 69 - 70        $this->targetDirectory = $config->getTargetDirectory(); - 71        $this->vendorDir = $config->getVendorDirectory(); - 72        $this->includeModifiedDate = $config->isIncludeModifiedDate(); - 73        $this->includeAuthor = $config->isIncludeAuthor(); + 70        $this->targetDirectory = $config->getTargetDirectory(); + 71        $this->vendorDir = $config->getVendorDirectory(); + 72        $this->includeModifiedDate = $config->isIncludeModifiedDate(); + 73        $this->includeAuthor = $config->isIncludeAuthor(); 74 - 75        $this->filesystem = new Filesystem(new LocalFilesystemAdapter('/')); + 75        $this->filesystem = new Filesystem(new LocalFilesystemAdapter('/')); 76    } 77 78    public function copyLicenses(): void 79    { - 80        $this->findLicenseFiles(); + 80        $this->findLicenseFiles(); 81 - 82        foreach ($this->getDiscoveredLicenseFiles() as $licenseFile) { + 82        foreach ($this->getDiscoveredLicenseFiles() as $licenseFile) { 83            $targetLicenseFile = $this->targetDirectory . $licenseFile; 84 85            $targetLicenseFileDir = dirname($targetLicenseFile); @@ -346,19 +346,19 @@ 107    public function findLicenseFiles(?Finder $finder = null): void 108    { 109        // Include all license files in the dependency path. - 110        $finder = $finder ?? new Finder(); + 110        $finder = $finder ?? new Finder(); 111 112        /** @var ComposerPackage $dependency */ - 113        foreach ($this->dependencies as $dependency) { - 114            $packagePath = $dependency->getPackageAbsolutePath(); + 113        foreach ($this->dependencies as $dependency) { + 114            $packagePath = $dependency->getPackageAbsolutePath(); 115 116            // If packages happen to have their vendor dir, i.e. locally required packages, don't included the licenses 117            // from their vendor dir (they should be included otherwise anyway). 118            // $dependency->getVendorDir() - 119            $finder->files()->in($packagePath)->followLinks()->exclude(array( 'vendor' ))->name('/^.*licen.e.*/i'); + 119            $finder->files()->in($packagePath)->followLinks()->exclude(array( 'vendor' ))->name('/^.*licen.e.*/i'); 120 121            /** @var \SplFileInfo $foundFile */ - 122            foreach ($finder as $foundFile) { + 122            foreach ($finder as $foundFile) { 123                $filePath = $foundFile->getPathname(); 124 125                // Replace multiple \ and/or / with OS native DIRECTORY_SEPARATOR. @@ -374,7 +374,7 @@ 135     */ 136    public function getDiscoveredLicenseFiles(): array 137    { - 138        return array_keys($this->discoveredLicenseFiles); + 138        return array_keys($this->discoveredLicenseFiles); 139    } 140 141    /** @@ -385,26 +385,26 @@ 146    public function addInformationToUpdatedFiles(array $modifiedFiles): void 147    { 148        // E.g. "25-April-2021". - 149        $date = gmdate("d-F-Y", time()); + 149        $date = gmdate("d-F-Y", time()); 150 - 151        foreach ($modifiedFiles as $relativeFilePath => $package) { - 152            $filepath = $this->workingDir . $this->targetDirectory . $relativeFilePath; + 151        foreach ($modifiedFiles as $relativeFilePath => $package) { + 152            $filepath = $this->workingDir . $this->targetDirectory . $relativeFilePath; 153 - 154            if (!$this->filesystem->fileExists($filepath)) { + 154            if (!$this->filesystem->fileExists($filepath)) { 155                continue; 156            } 157 - 158            $contents = $this->filesystem->read($filepath); + 158            $contents = $this->filesystem->read($filepath); 159 - 160            $updatedContents = $this->addChangeDeclarationToPhpString( - 161                $contents, - 162                $date, - 163                $package->getPackageName(), - 164                $package->getLicense() - 165            ); + 160            $updatedContents = $this->addChangeDeclarationToPhpString( + 161                $contents, + 162                $date, + 163                $package->getPackageName(), + 164                $package->getLicense() + 165            ); 166 - 167            if ($updatedContents !== $contents) { - 168                $this->filesystem->write($filepath, $updatedContents); + 167            if ($updatedContents !== $contents) { + 168                $this->filesystem->write($filepath, $updatedContents); 169            } 170        } 171    } @@ -435,42 +435,42 @@ 196        string $packageLicense 197    ) : string { 198 - 199        $author = $this->author; + 199        $author = $this->author; 200 - 201        $licenseDeclaration = "@license {$packageLicense}"; - 202        $modifiedDeclaration = 'Modified'; - 203        if ($this->includeAuthor) { - 204            $modifiedDeclaration .= " by {$author}"; + 201        $licenseDeclaration = "@license {$packageLicense}"; + 202        $modifiedDeclaration = 'Modified'; + 203        if ($this->includeAuthor) { + 204            $modifiedDeclaration .= " by {$author}"; 205        } - 206        if ($this->includeModifiedDate) { - 207            $modifiedDeclaration .= " on {$modifiedDate}"; + 206        if ($this->includeModifiedDate) { + 207            $modifiedDeclaration .= " on {$modifiedDate}"; 208        } - 209        $straussLink = 'https://github.com/BrianHenryIE/strauss'; - 210        $modifiedDeclaration .= " using {@see {$straussLink}}."; + 209        $straussLink = 'https://github.com/BrianHenryIE/strauss'; + 210        $modifiedDeclaration .= " using {@see {$straussLink}}."; 211 - 212        $startOfFileArray = []; - 213        $tokenizeString =  token_get_all($phpString); + 212        $startOfFileArray = []; + 213        $tokenizeString =  token_get_all($phpString); 214 - 215        foreach ($tokenizeString as $token) { - 216            if (is_array($token) && !in_array($token[1], ['namespace', '/*', ' /*'])) { - 217                $startOfFileArray[] = $token[1]; - 218                $token = array_shift($tokenizeString); + 215        foreach ($tokenizeString as $token) { + 216            if (is_array($token) && !in_array($token[1], ['namespace', '/*', ' /*'])) { + 217                $startOfFileArray[] = $token[1]; + 218                $token = array_shift($tokenizeString); 219 - 220                if (is_array($token) && stristr($token[1], 'strauss')) { - 221                    return $phpString; + 220                if (is_array($token) && stristr($token[1], 'strauss')) { + 221                    return $phpString; 222                } - 223            } elseif (!is_array($token)) { - 224                $startOfFileArray[] = $token; + 223            } elseif (!is_array($token)) { + 224                $startOfFileArray[] = $token; 225            } 226        } 227        // Not in use yet (because all tests are passing) but the idea of capturing the file header and only editing 228        // that seems more reasonable than searching the whole file. - 229        $startOfFile = implode('', $startOfFileArray); + 229        $startOfFile = implode('', $startOfFileArray); 230 231        // php-open followed by some whitespace and new line until the first ... - 232        $noCommentBetweenPhpOpenAndFirstCodePattern = '~<\?php[\s\n]*[\w\\\?]+~'; + 232        $noCommentBetweenPhpOpenAndFirstCodePattern = '~<\?php[\s\n]*[\w\\\?]+~'; 233 - 234        $multilineCommentCapturePattern = ' + 234        $multilineCommentCapturePattern = ' 235            ~                        # Start the pattern 236            ( 237            <\?php[\S\s]*            #  match the beginning of the files php-open and following whitespace @@ -481,13 +481,13 @@ 242            ( 243            \*/                      # Capture the multiline-comment-close separately 244            ) - 245            ~Ux';                          // U: Non-greedy matching, x: ignore whitespace in pattern. + 245            ~Ux';                          // U: Non-greedy matching, x: ignore whitespace in pattern. 246 - 247        $replaceInMultilineCommentFunction = function ($matches) use ( - 248            $licenseDeclaration, - 249            $modifiedDeclaration, - 250            $straussLink - 251        ) { + 247        $replaceInMultilineCommentFunction = function ($matches) use ( + 248            $licenseDeclaration, + 249            $modifiedDeclaration, + 250            $straussLink + 251        ) { 252            // Find the line prefix and use it, i.e. could be none, asterisk or space-asterisk. 253            $commentLines = explode("\n", $matches[2]); 254 @@ -511,12 +511,12 @@ 272            $replaceWith = $matches[1] . $matches[2] . $appendString . $commentEnd; 273 274            return $replaceWith; - 275        }; + 275        }; 276 277        // If it's a simple case where there is no existing header, add the existing license. - 278        if (1 === preg_match($noCommentBetweenPhpOpenAndFirstCodePattern, $phpString)) { - 279            $modifiedComment = "/**\n * {$licenseDeclaration}\n *\n * {$modifiedDeclaration}\n */"; - 280            $updatedPhpString = preg_replace('~<\?php~', "<?php\n". $modifiedComment, $phpString, 1); + 278        if (1 === preg_match($noCommentBetweenPhpOpenAndFirstCodePattern, $phpString)) { + 279            $modifiedComment = "/**\n * {$licenseDeclaration}\n *\n * {$modifiedDeclaration}\n */"; + 280            $updatedPhpString = preg_replace('~<\?php~', "<?php\n". $modifiedComment, $phpString, 1); 281        } else { 282            $updatedPhpString = preg_replace_callback( 283                $multilineCommentCapturePattern, @@ -526,7 +526,7 @@ 287            ); 288        } 289 - 290        return $updatedPhpString; + 290        return $updatedPhpString; 291    } 292} @@ -539,7 +539,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/Prefixer.php.html b/Prefixer.php.html index a017066..7187a59 100644 --- a/Prefixer.php.html +++ b/Prefixer.php.html @@ -44,21 +44,21 @@ Total
-
- 83.21% covered (warning) +
+ 74.05% covered (warning)
-
83.21%
-
109 / 131
+
74.05%
+
97 / 131
-
- 50.00% covered (danger) +
+ 40.00% covered (danger)
-
50.00%
-
5 / 10
+
40.00%
+
4 / 10
CRAP
@@ -73,22 +73,22 @@ Prefixer
-
- 83.21% covered (warning) +
+ 74.05% covered (warning)
-
83.21%
-
109 / 131
+
74.05%
+
97 / 131
-
- 50.00% covered (danger) +
+ 40.00% covered (danger)
-
50.00%
-
5 / 10
- 40.80 +
40.00%
+
4 / 10
+ 56.42
0.00% covered (danger) @@ -122,15 +122,15 @@ -  replaceInFiles -
-
- 73.33% covered (warning) +  replaceInFiles +
+
+ 0.00% covered (danger)
-
73.33%
-
11 / 15
+
0.00%
+
0 / 15
0.00% covered (danger) @@ -139,7 +139,7 @@
0.00%
0 / 1
- 7.93 + 56 @@ -298,25 +298,25 @@ -  getModifiedFiles -
-
- 100.00% covered (success) +  getModifiedFiles +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
-
-
- 100.00% covered (success) +
0.00%
+
0 / 1
+
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 1 - +
0.00%
+
0 / 1
+ 2 + @@ -365,16 +365,16 @@ 38 39    public function __construct(StraussConfig $config, string $workingDir) 40    { - 41        $this->filesystem = new Filesystem(new LocalFilesystemAdapter($workingDir)); + 41        $this->filesystem = new Filesystem(new LocalFilesystemAdapter($workingDir)); 42 - 43        $this->targetDirectory = $config->getTargetDirectory(); - 44        $this->namespacePrefix = $config->getNamespacePrefix(); - 45        $this->classmapPrefix = $config->getClassmapPrefix(); - 46        $this->constantsPrefix = $config->getConstantsPrefix(); + 43        $this->targetDirectory = $config->getTargetDirectory(); + 44        $this->namespacePrefix = $config->getNamespacePrefix(); + 45        $this->classmapPrefix = $config->getClassmapPrefix(); + 46        $this->constantsPrefix = $config->getConstantsPrefix(); 47 - 48        $this->excludePackageNamesFromPrefixing = $config->getExcludePackagesFromPrefixing(); - 49        $this->excludeNamespacesFromPrefixing = $config->getExcludeNamespacesFromPrefixing(); - 50        $this->excludeFilePatternsFromPrefixing = $config->getExcludeFilePatternsFromPrefixing(); + 48        $this->excludePackageNamesFromPrefixing = $config->getExcludePackagesFromPrefixing(); + 49        $this->excludeNamespacesFromPrefixing = $config->getExcludeNamespacesFromPrefixing(); + 50        $this->excludeFilePatternsFromPrefixing = $config->getExcludeFilePatternsFromPrefixing(); 51    } 52 53    // Don't replace a classname if there's an import for a class with the same name. @@ -390,35 +390,35 @@ 63    public function replaceInFiles(array $namespaceChanges, array $classChanges, array $constants, array $phpFileArrays): void 64    { 65 - 66        foreach ($phpFileArrays as $targetRelativeFilepath => $fileArray) { - 67            $package = $fileArray['dependency']; + 66        foreach ($phpFileArrays as $targetRelativeFilepath => $fileArray) { + 67            $package = $fileArray['dependency']; 68 69            // Skip excluded namespaces. - 70            if (in_array($package->getPackageName(), $this->excludePackageNamesFromPrefixing)) { + 70            if (in_array($package->getPackageName(), $this->excludePackageNamesFromPrefixing)) { 71                continue; 72            } 73 74            // Skip files whose filepath matches an excluded pattern. - 75            foreach ($this->excludeFilePatternsFromPrefixing as $excludePattern) { + 75            foreach ($this->excludeFilePatternsFromPrefixing as $excludePattern) { 76                if (1 === preg_match($excludePattern, $targetRelativeFilepath)) { 77                    continue 2; 78                } 79            } 80 - 81            $targetRelativeFilepathFromProject = $this->targetDirectory. $targetRelativeFilepath; + 81            $targetRelativeFilepathFromProject = $this->targetDirectory. $targetRelativeFilepath; 82 - 83            if (! $this->filesystem->fileExists($targetRelativeFilepathFromProject)) { + 83            if (! $this->filesystem->fileExists($targetRelativeFilepathFromProject)) { 84                continue; 85            } 86 87            // Throws an exception, but unlikely to happen. - 88            $contents = $this->filesystem->read($targetRelativeFilepathFromProject); + 88            $contents = $this->filesystem->read($targetRelativeFilepathFromProject); 89 - 90            $updatedContents = $this->replaceInString($namespaceChanges, $classChanges, $constants, $contents); + 90            $updatedContents = $this->replaceInString($namespaceChanges, $classChanges, $constants, $contents); 91 - 92            if ($updatedContents !== $contents) { - 93                $this->changedFiles[$targetRelativeFilepath] = $package; - 94                $this->filesystem->write($targetRelativeFilepathFromProject, $updatedContents); + 92            if ($updatedContents !== $contents) { + 93                $this->changedFiles[$targetRelativeFilepath] = $package; + 94                $this->filesystem->write($targetRelativeFilepathFromProject, $updatedContents); 95            } 96        } 97    } @@ -460,7 +460,7 @@ 133    public function replaceInString(array $namespacesChanges, array $classes, array $originalConstants, string $contents): string 134    { 135 - 136        foreach ($classes as $originalClassname) { + 136        foreach ($classes as $originalClassname) { 137            if ('ReturnTypeWillChange' === $originalClassname) { 138                continue; 139            } @@ -470,19 +470,19 @@ 143            $contents = $this->replaceClassname($contents, $originalClassname, $classmapPrefix); 144        } 145 - 146        foreach ($namespacesChanges as $originalNamespace => $replacement) { - 147            if (in_array($originalNamespace, $this->excludeNamespacesFromPrefixing)) { + 146        foreach ($namespacesChanges as $originalNamespace => $replacement) { + 147            if (in_array($originalNamespace, $this->excludeNamespacesFromPrefixing)) { 148                continue; 149            } 150 - 151            $contents = $this->replaceNamespace($contents, $originalNamespace, $replacement); + 151            $contents = $this->replaceNamespace($contents, $originalNamespace, $replacement); 152        } 153 - 154        if (!is_null($this->constantsPrefix)) { + 154        if (!is_null($this->constantsPrefix)) { 155            $contents = $this->replaceConstants($contents, $originalConstants, $this->constantsPrefix); 156        } 157 - 158        return $contents; + 158        return $contents; 159    } 160 161    /** @@ -497,11 +497,11 @@ 170    public function replaceNamespace(string $contents, string $originalNamespace, string $replacement): string 171    { 172 - 173        $searchNamespace = '\\'.rtrim($originalNamespace, '\\') . '\\'; - 174        $searchNamespace = str_replace('\\\\', '\\', $searchNamespace); - 175        $searchNamespace = str_replace('\\', '\\\\{0,2}', $searchNamespace); + 173        $searchNamespace = '\\'.rtrim($originalNamespace, '\\') . '\\'; + 174        $searchNamespace = str_replace('\\\\', '\\', $searchNamespace); + 175        $searchNamespace = str_replace('\\', '\\\\{0,2}', $searchNamespace); 176 - 177        $pattern = " + 177        $pattern = " 178            /                              # Start the pattern 179            ( 180            ^\s*                          # start of the string @@ -532,7 +532,7 @@ 205            |\(string\)\s*                 # casting a namespaced class to a string 206            ) 207            (?<searchNamespace> - 208            {$searchNamespace}             # followed by the namespace to replace + 208            {$searchNamespace}             # followed by the namespace to replace 209            ) 210            (?!:)                          # Not followed by : which would only be valid after a classname 211            ( @@ -544,26 +544,26 @@ 217            |:                             # or a colon to access a static 218            |\\\\{ 219            )                             - 220            /Ux";                          // U: Non-greedy matching, x: ignore whitespace in pattern. + 220            /Ux";                          // U: Non-greedy matching, x: ignore whitespace in pattern. 221 - 222        $replacingFunction = function ($matches) use ($originalNamespace, $replacement) { - 223            $singleBackslash = '\\'; - 224            $doubleBackslash = '\\\\'; + 222        $replacingFunction = function ($matches) use ($originalNamespace, $replacement) { + 223            $singleBackslash = '\\'; + 224            $doubleBackslash = '\\\\'; 225 - 226            if (false !== strpos($matches['0'], $doubleBackslash)) { + 226            if (false !== strpos($matches['0'], $doubleBackslash)) { 227                $originalNamespace = str_replace($singleBackslash, $doubleBackslash, $originalNamespace); 228                $replacement = str_replace($singleBackslash, $doubleBackslash, $replacement); 229            } 230 - 231            $replaced = str_replace($originalNamespace, $replacement, $matches[0]); + 231            $replaced = str_replace($originalNamespace, $replacement, $matches[0]); 232 - 233            return $replaced; - 234        }; + 233            return $replaced; + 234        }; 235 - 236        $result = preg_replace_callback($pattern, $replacingFunction, $contents); + 236        $result = preg_replace_callback($pattern, $replacingFunction, $contents); 237 - 238        $matchingError = preg_last_error(); - 239        if (0 !== $matchingError) { + 238        $matchingError = preg_last_error(); + 239        if (0 !== $matchingError) { 240            $message = "Matching error {$matchingError}"; 241            if (PREG_BACKTRACK_LIMIT_ERROR === $matchingError) { 242                $message = 'Preg Backtrack limit was exhausted!'; @@ -574,14 +574,14 @@ 247        // For prefixed functions which do not begin with a backslash, add one. 248        // I'm not certain this is a good idea. 249        // @see https://github.com/BrianHenryIE/strauss/issues/65 - 250        $functionReplacingPatten = '/\\\\?('.preg_quote(ltrim($replacement, '\\'), '/').'\\\\(?:[a-zA-Z0-9_\x7f-\xff]+\\\\)*[a-zA-Z0-9_\x7f-\xff]+\\()/'; - 251        $result = preg_replace( - 252            $functionReplacingPatten, - 253            "\\\\$1", - 254            $result - 255        ); + 250        $functionReplacingPatten = '/\\\\?('.preg_quote(ltrim($replacement, '\\'), '/').'\\\\(?:[a-zA-Z0-9_\x7f-\xff]+\\\\)*[a-zA-Z0-9_\x7f-\xff]+\\()/'; + 251        $result = preg_replace( + 252            $functionReplacingPatten, + 253            "\\\\$1", + 254            $result + 255        ); 256 - 257        return $result; + 257        return $result; 258    } 259 260    /** @@ -734,7 +734,7 @@ 407     */ 408    public function getModifiedFiles(): array 409    { - 410        return $this->changedFiles; + 410        return $this->changedFiles; 411    } 412} @@ -747,7 +747,7 @@

Legend

Covered by small (and larger) testsCovered by medium (and large) testsCovered by large tests (and tests of unknown size)Not coveredNot coverable

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.

diff --git a/dashboard.html b/dashboard.html index a781ce5..e267f86 100644 --- a/dashboard.html +++ b/dashboard.html @@ -57,15 +57,15 @@

Insufficient Coverage

-
BrianHenryIE\Strauss\Cleanup42% - BrianHenryIE\Strauss\FileEnumerator65% - BrianHenryIE\Strauss\Autoload69% - BrianHenryIE\Strauss\Copier73% - BrianHenryIE\Strauss\Console\Commands\Compose73% - BrianHenryIE\Strauss\Composer\ComposerPackage79% - BrianHenryIE\Strauss\Prefixer83% - BrianHenryIE\Strauss\Licenser87% - BrianHenryIE\Strauss\Composer\Extra\StraussConfig89% + BrianHenryIE\Strauss\Autoload0% + BrianHenryIE\Strauss\Cleanup0% + BrianHenryIE\Strauss\Copier0% + BrianHenryIE\Strauss\FileEnumerator0% + BrianHenryIE\Strauss\Console\Commands\Compose17% + BrianHenryIE\Strauss\Composer\ComposerPackage66% + BrianHenryIE\Strauss\Licenser69% + BrianHenryIE\Strauss\Prefixer74% + BrianHenryIE\Strauss\Composer\Extra\StraussConfig83% @@ -82,15 +82,15 @@

Project Risks

- BrianHenryIE\Strauss\Cleanup192 - BrianHenryIE\Strauss\Composer\Extra\StraussConfig79 - BrianHenryIE\Strauss\FileEnumerator62 - BrianHenryIE\Strauss\Console\Commands\Compose57 - BrianHenryIE\Strauss\Prefixer40 - BrianHenryIE\Strauss\Licenser27 - BrianHenryIE\Strauss\Composer\ComposerPackage22 - BrianHenryIE\Strauss\Autoload21 - BrianHenryIE\Strauss\Copier7 + BrianHenryIE\Strauss\FileEnumerator870 + BrianHenryIE\Strauss\Cleanup870 + BrianHenryIE\Strauss\Console\Commands\Compose712 + BrianHenryIE\Strauss\Autoload240 + BrianHenryIE\Strauss\Composer\Extra\StraussConfig95 + BrianHenryIE\Strauss\Prefixer56 + BrianHenryIE\Strauss\Copier56 + BrianHenryIE\Strauss\Licenser44 + BrianHenryIE\Strauss\Composer\ComposerPackage32 @@ -128,36 +128,69 @@

Insufficient Coverage

- setClassmapOutput0% - setExcludePackagesFromPrefixing0% - findFilesInDirectory0% + __construct0% + __construct0% + buildDependencyList0% + recursiveGetAllDependencies0% + enumerateFiles0% + copyFiles0% + determineChanges0% + performReplacements0% + performReplacementsInComposerFiles0% + performReplacementsInProjectFiles0% + addLicenses0% + generateAutoloader0% generateClassAliasList0% + cleanUp0% + prepareTarget0% + setNamespaceReplacementPatterns0% + copy0% + __construct0% + compileFileList0% + getAllFilesAndDependencyList0% + getPhpFilesAndDependencyList0% + getFilesAutoloaders0% + findFilesInDirectory0% + copyLicenses0% + getDiscoveredLicenseFiles0% + addInformationToUpdatedFiles0% + replaceInFiles0% + replaceInProjectFiles0% + generate0% + getAuthor0% + getNamespaceReplacementPatterns0% + getConstantsPrefix0% + generateClassmap0% + generateFilesAutoloader0% + generateAutoloadPhp0% + __construct0% + cleanup0% dirIsEmpty0% cleanupFilesAutoloader0% - setNamespaceReplacementPatterns0% fromComposerJsonArray0% - replaceInProjectFiles0% + getRelativePath0% + getLicense0% + getVendorDirectory0% + getPackageAbsolutePath0% setConstantsPrefix0% + setExcludePackagesFromPrefixing0% + setClassmapOutput0% + isClassmapOutput0% setExcludeFromCopy0% - copyLicenses16% - performReplacementsInComposerFiles18% - generateFilesAutoloader20% - performReplacementsInProjectFiles27% - prepareTarget33% - recursiveGetAllDependencies59% - loadProjectComposerPackage60% + getExcludeNamespacesFromPrefixing0% + getExcludeFilePatternsFromCopy0% + getExcludeNamespacesFromCopy0% + getExcludePackagesFromCopy0% + getModifiedFiles0% + loadProjectComposerPackage20% + execute52% + findInFiles61% setExcludeFromPrefix66% - compileFileList66% - generate71% - cleanup72% - replaceInFiles73% fromFile75% + __construct77% addDiscoveredNamespaceChange77% - generateAutoloader83% - cleanUp83% replaceClassname83% replaceNamespace86% - __construct86% __construct88% @@ -175,30 +208,37 @@

Project Risks

+ compileFileList552 + cleanup306 + recursiveGetAllDependencies110 cleanupFilesAutoloader72 - compileFileList42 - generateFilesAutoloader24 - cleanup23 + replaceInFiles56 + generateFilesAutoloader42 + performReplacementsInProjectFiles30 + generateClassmap20 replaceInProjectFiles20 - recursiveGetAllDependencies16 - performReplacementsInProjectFiles14 - copyLicenses13 + addInformationToUpdatedFiles20 + copyLicenses20 + prepareTarget20 + generate12 setExcludeFromCopy12 + __construct12 __construct9 - prepareTarget8 + findInFiles9 replaceClassname8 - replaceInFiles7 + loadProjectComposerPackage7 findFilesInDirectory6 + copy6 + cleanUp6 + generateAutoloader6 + performReplacementsInComposerFiles6 + copyFiles6 addDiscoveredNamespaceChange5 __construct5 setExcludeFromPrefix4 - performReplacementsInComposerFiles4 replaceNamespace4 - loadProjectComposerPackage3 - generate3 + execute2 fromFile2 - cleanUp2 - generateAutoloader2 @@ -208,7 +248,7 @@

Project Risks

@@ -227,7 +267,7 @@

Project Risks

.yAxis.tickFormat(d3.format('d')); d3.select('#classCoverageDistribution svg') - .datum(getCoverageDistributionData([0,0,0,0,0,1,0,2,3,3,2,1], "Class Coverage")) + .datum(getCoverageDistributionData([4,0,1,0,0,0,0,2,1,1,2,1], "Class Coverage")) .transition().duration(500).call(chart); nv.utils.windowResize(chart.update); @@ -245,7 +285,7 @@

Project Risks

.yAxis.tickFormat(d3.format('d')); d3.select('#methodCoverageDistribution svg') - .datum(getCoverageDistributionData([11,0,2,2,1,0,1,3,5,6,8,72], "Method Coverage")) + .datum(getCoverageDistributionData([54,0,0,1,0,0,1,2,3,3,4,43], "Method Coverage")) .transition().duration(500).call(chart); nv.utils.windowResize(chart.update); @@ -295,7 +335,7 @@

Project Risks

chart.yAxis.axisLabel('Cyclomatic Complexity'); d3.select('#classComplexity svg') - .datum(getComplexityData([[69.84126984126983,15,"BrianHenryIE\\Strauss\\Autoload<\/a>"],[98.9100817438692,28,"BrianHenryIE\\Strauss\\ChangeEnumerator<\/a>"],[42.10526315789473,29,"BrianHenryIE\\Strauss\\Cleanup<\/a>"],[79.48717948717949,19,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage<\/a>"],[89.43661971830986,73,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig<\/a>"],[93.54838709677419,9,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Application<\/a>"],[73.4567901234568,35,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose<\/a>"],[73.33333333333333,7,"BrianHenryIE\\Strauss\\Copier<\/a>"],[65.85365853658537,29,"BrianHenryIE\\Strauss\\FileEnumerator<\/a>"],[87.09677419354838,26,"BrianHenryIE\\Strauss\\Licenser<\/a>"],[83.20610687022901,35,"BrianHenryIE\\Strauss\\Prefixer<\/a>"]], 'Class Complexity')) + .datum(getComplexityData([[0,15,"BrianHenryIE\\Strauss\\Autoload<\/a>"],[97.82016348773843,28,"BrianHenryIE\\Strauss\\ChangeEnumerator<\/a>"],[0,29,"BrianHenryIE\\Strauss\\Cleanup<\/a>"],[66.66666666666666,19,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage<\/a>"],[83.80281690140845,73,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig<\/a>"],[90.32258064516128,9,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Application<\/a>"],[17.901234567901234,35,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose<\/a>"],[0,7,"BrianHenryIE\\Strauss\\Copier<\/a>"],[0,29,"BrianHenryIE\\Strauss\\FileEnumerator<\/a>"],[69.89247311827957,26,"BrianHenryIE\\Strauss\\Licenser<\/a>"],[74.04580152671755,35,"BrianHenryIE\\Strauss\\Prefixer<\/a>"]], 'Class Complexity')) .transition() .duration(500) .call(chart); @@ -319,7 +359,7 @@

Project Risks

chart.yAxis.axisLabel('Method Complexity'); d3.select('#methodComplexity svg') - .datum(getComplexityData([[100,1,"
BrianHenryIE\\Strauss\\Autoload::__construct<\/a>"],[71.42857142857143,3,"BrianHenryIE\\Strauss\\Autoload::generate<\/a>"],[96.55172413793103,4,"BrianHenryIE\\Strauss\\Autoload::generateClassmap<\/a>"],[20,6,"BrianHenryIE\\Strauss\\Autoload::generateFilesAutoloader<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Autoload::generateAutoloadPhp<\/a>"],[100,1,"BrianHenryIE\\Strauss\\ChangeEnumerator::__construct<\/a>"],[90,3,"BrianHenryIE\\Strauss\\ChangeEnumerator::getDiscoveredNamespaces<\/a>"],[100,3,"BrianHenryIE\\Strauss\\ChangeEnumerator::getDiscoveredClasses<\/a>"],[100,2,"BrianHenryIE\\Strauss\\ChangeEnumerator::getDiscoveredConstants<\/a>"],[92.3076923076923,7,"BrianHenryIE\\Strauss\\ChangeEnumerator::findInFiles<\/a>"],[100,6,"BrianHenryIE\\Strauss\\ChangeEnumerator::find<\/a>"],[77.77777777777779,5,"BrianHenryIE\\Strauss\\ChangeEnumerator::addDiscoveredNamespaceChange<\/a>"],[100,1,"BrianHenryIE\\Strauss\\ChangeEnumerator::getBuiltInClassnames<\/a>"],[100,3,"BrianHenryIE\\Strauss\\Cleanup::__construct<\/a>"],[72.3404255319149,17,"BrianHenryIE\\Strauss\\Cleanup::cleanup<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Cleanup::dirIsEmpty<\/a>"],[0,8,"BrianHenryIE\\Strauss\\Cleanup::cleanupFilesAutoloader<\/a>"],[75,2,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::fromFile<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::fromComposerJsonArray<\/a>"],[86.36363636363636,9,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getPackageName<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getRelativePath<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getPackageAbsolutePath<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getAutoload<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getRequiresNames<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getLicense<\/a>"],[93.25842696629213,30,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getTargetDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setTargetDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getClassmapPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getConstantsPrefix<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setConstantsPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getUpdateCallSites<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setUpdateCallSites<\/a>"],[0,3,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromCopy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromCopy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromCopy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromCopy<\/a>"],[66.66666666666666,4,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromPrefixing<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackagesFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isClassmapOutput<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapOutput<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespaceReplacementPatterns<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespaceReplacementPatterns<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeAuthor<\/a>"],[88.23529411764706,5,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getStraussConfig<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getFlatAutoloadKey<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Application::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::configure<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::execute<\/a>"],[60,3,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::loadProjectComposerPackage<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::buildDependencyList<\/a>"],[59.375,10,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::recursiveGetAllDependencies<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::enumerateFiles<\/a>"],[90.9090909090909,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::copyFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::determineChanges<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacements<\/a>"],[18.181818181818183,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInComposerFiles<\/a>"],[27.77777777777778,5,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInProjectFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::addLicenses<\/a>"],[83.33333333333334,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateAutoloader<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateClassAliasList<\/a>"],[83.33333333333334,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::cleanUp<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Copier::__construct<\/a>"],[33.33333333333333,4,"BrianHenryIE\\Strauss\\Copier::prepareTarget<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Copier::copy<\/a>"],[100,1,"BrianHenryIE\\Strauss\\FileEnumerator::__construct<\/a>"],[66.66666666666666,23,"BrianHenryIE\\Strauss\\FileEnumerator::compileFileList<\/a>"],[100,1,"BrianHenryIE\\Strauss\\FileEnumerator::getAllFilesAndDependencyList<\/a>"],[100,1,"BrianHenryIE\\Strauss\\FileEnumerator::getPhpFilesAndDependencyList<\/a>"],[100,1,"BrianHenryIE\\Strauss\\FileEnumerator::getFilesAutoloaders<\/a>"],[0,2,"BrianHenryIE\\Strauss\\FileEnumerator::findFilesInDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Licenser::__construct<\/a>"],[16.666666666666664,4,"BrianHenryIE\\Strauss\\Licenser::copyLicenses<\/a>"],[100,3,"BrianHenryIE\\Strauss\\Licenser::findLicenseFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Licenser::getDiscoveredLicenseFiles<\/a>"],[92.85714285714286,4,"BrianHenryIE\\Strauss\\Licenser::addInformationToUpdatedFiles<\/a>"],[98,13,"BrianHenryIE\\Strauss\\Licenser::addChangeDeclarationToPhpString<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Prefixer::__construct<\/a>"],[73.33333333333333,7,"BrianHenryIE\\Strauss\\Prefixer::replaceInFiles<\/a>"],[0,4,"BrianHenryIE\\Strauss\\Prefixer::replaceInProjectFiles<\/a>"],[91.66666666666666,6,"BrianHenryIE\\Strauss\\Prefixer::replaceInString<\/a>"],[86.20689655172413,4,"BrianHenryIE\\Strauss\\Prefixer::replaceNamespace<\/a>"],[83.87096774193549,8,"BrianHenryIE\\Strauss\\Prefixer::replaceClassname<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Prefixer::replaceGlobalClassInsideNamedNamespace<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Prefixer::replaceConstants<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Prefixer::replaceConstant<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Prefixer::getModifiedFiles<\/a>"]], 'Method Complexity')) + .datum(getComplexityData([[0,1,"BrianHenryIE\\Strauss\\Autoload::__construct<\/a>"],[0,3,"BrianHenryIE\\Strauss\\Autoload::generate<\/a>"],[0,4,"BrianHenryIE\\Strauss\\Autoload::generateClassmap<\/a>"],[0,6,"BrianHenryIE\\Strauss\\Autoload::generateFilesAutoloader<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Autoload::generateAutoloadPhp<\/a>"],[100,1,"BrianHenryIE\\Strauss\\ChangeEnumerator::__construct<\/a>"],[90,3,"BrianHenryIE\\Strauss\\ChangeEnumerator::getDiscoveredNamespaces<\/a>"],[100,3,"BrianHenryIE\\Strauss\\ChangeEnumerator::getDiscoveredClasses<\/a>"],[100,2,"BrianHenryIE\\Strauss\\ChangeEnumerator::getDiscoveredConstants<\/a>"],[61.53846153846154,7,"BrianHenryIE\\Strauss\\ChangeEnumerator::findInFiles<\/a>"],[100,6,"BrianHenryIE\\Strauss\\ChangeEnumerator::find<\/a>"],[77.77777777777779,5,"BrianHenryIE\\Strauss\\ChangeEnumerator::addDiscoveredNamespaceChange<\/a>"],[100,1,"BrianHenryIE\\Strauss\\ChangeEnumerator::getBuiltInClassnames<\/a>"],[0,3,"BrianHenryIE\\Strauss\\Cleanup::__construct<\/a>"],[0,17,"BrianHenryIE\\Strauss\\Cleanup::cleanup<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Cleanup::dirIsEmpty<\/a>"],[0,8,"BrianHenryIE\\Strauss\\Cleanup::cleanupFilesAutoloader<\/a>"],[75,2,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::fromFile<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::fromComposerJsonArray<\/a>"],[77.27272727272727,9,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getPackageName<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getRelativePath<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getPackageAbsolutePath<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getAutoload<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getRequiresNames<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ComposerPackage::getLicense<\/a>"],[93.25842696629213,30,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getTargetDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setTargetDirectory<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespacePrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getClassmapPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapPrefix<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getConstantsPrefix<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setConstantsPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getUpdateCallSites<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setUpdateCallSites<\/a>"],[0,3,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromCopy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromCopy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromCopy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromCopy<\/a>"],[66.66666666666666,4,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludeFromPrefix<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludePackagesFromPrefixing<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackagesFromPrefixing<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeNamespacesFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getExcludeFilePatternsFromPrefixing<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setOverrideAutoload<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorFiles<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setDeleteVendorPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getPackages<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setPackages<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isClassmapOutput<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setClassmapOutput<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setExcludePackages<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::getNamespaceReplacementPatterns<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setNamespaceReplacementPatterns<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeModifiedDate<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::isIncludeAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\Extra\\StraussConfig::setIncludeAuthor<\/a>"],[88.23529411764706,5,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getStraussConfig<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getAuthor<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getVendorDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Composer\\ProjectComposerPackage::getFlatAutoloadKey<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Application::__construct<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::configure<\/a>"],[52.17391304347826,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::execute<\/a>"],[20,3,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::loadProjectComposerPackage<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::buildDependencyList<\/a>"],[0,10,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::recursiveGetAllDependencies<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::enumerateFiles<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::copyFiles<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::determineChanges<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacements<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInComposerFiles<\/a>"],[0,5,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::performReplacementsInProjectFiles<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::addLicenses<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateAutoloader<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::generateClassAliasList<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Console\\Commands\\Compose::cleanUp<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Copier::__construct<\/a>"],[0,4,"BrianHenryIE\\Strauss\\Copier::prepareTarget<\/a>"],[0,2,"BrianHenryIE\\Strauss\\Copier::copy<\/a>"],[0,1,"BrianHenryIE\\Strauss\\FileEnumerator::__construct<\/a>"],[0,23,"BrianHenryIE\\Strauss\\FileEnumerator::compileFileList<\/a>"],[0,1,"BrianHenryIE\\Strauss\\FileEnumerator::getAllFilesAndDependencyList<\/a>"],[0,1,"BrianHenryIE\\Strauss\\FileEnumerator::getPhpFilesAndDependencyList<\/a>"],[0,1,"BrianHenryIE\\Strauss\\FileEnumerator::getFilesAutoloaders<\/a>"],[0,2,"BrianHenryIE\\Strauss\\FileEnumerator::findFilesInDirectory<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Licenser::__construct<\/a>"],[0,4,"BrianHenryIE\\Strauss\\Licenser::copyLicenses<\/a>"],[100,3,"BrianHenryIE\\Strauss\\Licenser::findLicenseFiles<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Licenser::getDiscoveredLicenseFiles<\/a>"],[0,4,"BrianHenryIE\\Strauss\\Licenser::addInformationToUpdatedFiles<\/a>"],[98,13,"BrianHenryIE\\Strauss\\Licenser::addChangeDeclarationToPhpString<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Prefixer::__construct<\/a>"],[0,7,"BrianHenryIE\\Strauss\\Prefixer::replaceInFiles<\/a>"],[0,4,"BrianHenryIE\\Strauss\\Prefixer::replaceInProjectFiles<\/a>"],[91.66666666666666,6,"BrianHenryIE\\Strauss\\Prefixer::replaceInString<\/a>"],[86.20689655172413,4,"BrianHenryIE\\Strauss\\Prefixer::replaceNamespace<\/a>"],[83.87096774193549,8,"BrianHenryIE\\Strauss\\Prefixer::replaceClassname<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Prefixer::replaceGlobalClassInsideNamedNamespace<\/a>"],[100,2,"BrianHenryIE\\Strauss\\Prefixer::replaceConstants<\/a>"],[100,1,"BrianHenryIE\\Strauss\\Prefixer::replaceConstant<\/a>"],[0,1,"BrianHenryIE\\Strauss\\Prefixer::getModifiedFiles<\/a>"]], 'Method Complexity')) .transition() .duration(500) .call(chart); diff --git a/index.html b/index.html index 0735b78..cc0a11e 100644 --- a/index.html +++ b/index.html @@ -44,21 +44,21 @@ Total
-
- 82.68% covered (warning) +
+ 59.40% covered (warning)
-
82.68%
-
1012 / 1224
-
-
- 64.86% covered (warning) +
59.40%
+
727 / 1224
+
+
+ 38.74% covered (danger)
-
64.86%
-
72 / 111
+
38.74%
+
43 / 111
8.33% covered (danger) @@ -72,21 +72,21 @@ Composer
-
- 88.21% covered (warning) +
+ 81.60% covered (warning)
-
88.21%
-
187 / 212
+
81.60%
+
173 / 212
-
- 79.25% covered (warning) +
+ 56.60% covered (warning)
-
79.25%
-
42 / 53
+
56.60%
+
30 / 53
0.00% covered (danger) @@ -98,23 +98,23 @@ - Console -
-
- 74.10% covered (warning) + Console +
+
+ 19.88% covered (danger)
-
74.10%
-
123 / 166
+
19.88%
+
33 / 166
-
- 50.00% covered (danger) +
+ 12.50% covered (danger)
-
50.00%
-
8 / 16
+
12.50%
+
2 / 16
50.00% covered (danger) @@ -126,23 +126,23 @@ - Autoload.php -
-
- 69.84% covered (warning) + Autoload.php +
+
+ 0.00% covered (danger)
-
69.84%
-
44 / 63
+
0.00%
+
0 / 63
-
- 40.00% covered (danger) +
+ 0.00% covered (danger)
-
40.00%
-
2 / 5
+
0.00%
+
0 / 5
0.00% covered (danger) @@ -156,13 +156,13 @@ ChangeEnumerator.php
-
- 98.91% covered (success) +
+ 97.82% covered (success)
-
98.91%
-
363 / 367
+
97.82%
+
359 / 367
62.50% covered (warning) @@ -184,21 +184,21 @@ Cleanup.php
-
- 42.11% covered (danger) +
+ 0.00% covered (danger)
-
42.11%
-
40 / 95
+
0.00%
+
0 / 95
-
- 25.00% covered (danger) +
+ 0.00% covered (danger)
-
25.00%
-
1 / 4
+
0.00%
+
0 / 4
0.00% covered (danger) @@ -210,23 +210,23 @@ - Copier.php -
-
- 73.33% covered (warning) + Copier.php +
+
+ 0.00% covered (danger)
-
73.33%
-
11 / 15
-
-
- 66.67% covered (warning) +
0.00%
+
0 / 15
+
+
+ 0.00% covered (danger)
-
66.67%
-
2 / 3
+
0.00%
+
0 / 3
0.00% covered (danger) @@ -238,23 +238,23 @@ - FileEnumerator.php -
-
- 65.85% covered (warning) + FileEnumerator.php +
+
+ 0.00% covered (danger)
-
65.85%
-
54 / 82
-
-
- 66.67% covered (warning) +
0.00%
+
0 / 82
+
+
+ 0.00% covered (danger)
-
66.67%
-
4 / 6
+
0.00%
+
0 / 6
0.00% covered (danger) @@ -268,21 +268,21 @@ Licenser.php
-
- 87.10% covered (warning) +
+ 69.89% covered (warning)
-
87.10%
-
81 / 93
+
69.89%
+
65 / 93
-
- 50.00% covered (danger) +
+ 33.33% covered (danger)
-
50.00%
-
3 / 6
+
33.33%
+
2 / 6
0.00% covered (danger) @@ -296,21 +296,21 @@ Prefixer.php
-
- 83.21% covered (warning) +
+ 74.05% covered (warning)
-
83.21%
-
109 / 131
+
74.05%
+
97 / 131
-
- 50.00% covered (danger) +
+ 40.00% covered (danger)
-
50.00%
-
5 / 10
+
40.00%
+
4 / 10
0.00% covered (danger) @@ -334,7 +334,7 @@

Legend

High: 90% to 100%

- Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:11:50 UTC 2024. + Generated by php-code-coverage 9.2.31 using PHP 7.4.33 and PHPUnit 9.6.17 at Tue Mar 19 3:19:56 UTC 2024.