registration: Simplify extracting path based globals
authorKunal Mehta <legoktm@member.fsf.org>
Sat, 10 Feb 2018 06:21:19 +0000 (22:21 -0800)
committerKunal Mehta <legoktm@member.fsf.org>
Sat, 10 Feb 2018 06:33:10 +0000 (22:33 -0800)
The code for ParserTestFiles and ServiceWiringFiles was identical, so
unify it into one function. For most extensions, this should save two
unnecessary function calls as a bonus.

Change-Id: If5ed189f97b7d3b9cd7b550f3ad2e90abe30005d

includes/registration/ExtensionProcessor.php
tests/phpunit/includes/registration/ExtensionProcessorTest.php

index fe617c5..0d0a6e4 100644 (file)
@@ -197,8 +197,20 @@ class ExtensionProcessor implements Processor {
                $this->extractMessagesDirs( $dir, $info );
                $this->extractNamespaces( $info );
                $this->extractResourceLoaderModules( $dir, $info );
                $this->extractMessagesDirs( $dir, $info );
                $this->extractNamespaces( $info );
                $this->extractResourceLoaderModules( $dir, $info );
-               $this->extractServiceWiringFiles( $dir, $info );
-               $this->extractParserTestFiles( $dir, $info );
+               if ( isset( $info['ServiceWiringFiles'] ) ) {
+                       $this->extractPathBasedGlobal(
+                               'wgServiceWiringFiles',
+                               $dir,
+                               $info['ServiceWiringFiles']
+                       );
+               }
+               if ( isset( $info['ParserTestFiles'] ) ) {
+                       $this->extractPathBasedGlobal(
+                               'wgParserTestFiles',
+                               $dir,
+                               $info['ParserTestFiles']
+                       );
+               }
                $name = $this->extractCredits( $path, $info );
                if ( isset( $info['callback'] ) ) {
                        $this->callbacks[$name] = $info['callback'];
                $name = $this->extractCredits( $path, $info );
                if ( isset( $info['callback'] ) ) {
                        $this->callbacks[$name] = $info['callback'];
@@ -499,19 +511,9 @@ class ExtensionProcessor implements Processor {
                $this->globals[$key] = $value;
        }
 
                $this->globals[$key] = $value;
        }
 
-       protected function extractServiceWiringFiles( $dir, array $info ) {
-               if ( isset( $info['ServiceWiringFiles'] ) ) {
-                       foreach ( $info['ServiceWiringFiles'] as $path ) {
-                               $this->globals['wgServiceWiringFiles'][] = "$dir/$path";
-                       }
-               }
-       }
-
-       protected function extractParserTestFiles( $dir, array $info ) {
-               if ( isset( $info['ParserTestFiles'] ) ) {
-                       foreach ( $info['ParserTestFiles'] as $path ) {
-                               $this->globals['wgParserTestFiles'][] = "$dir/$path";
-                       }
+       protected function extractPathBasedGlobal( $global, $dir, $paths ) {
+               foreach ( $paths as $path ) {
+                       $this->globals[$global][] = "$dir/$path";
                }
        }
 
                }
        }
 
index ef19b2f..d9e091d 100644 (file)
@@ -647,7 +647,7 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
                );
        }
 
                );
        }
 
-       public function testExtractSimplePathBased() {
+       public function testExtractPathBasedGlobal() {
                $processor = new ExtensionProcessor();
                $processor->extractInfo(
                        $this->dir,
                $processor = new ExtensionProcessor();
                $processor->extractInfo(
                        $this->dir,