[MediaWiki-commits] [Gerrit] Reduce NPath complexity and improve readability - change (mediawiki...Wikibase)

2013-08-15 Thread Jeroen De Dauw (Code Review)
Jeroen De Dauw has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/79192


Change subject: Reduce NPath complexity and improve readability
..

Reduce NPath complexity and improve readability

Change-Id: I7961b2c507da3661ce4c0a8bbaf994e80001b672
---
M lib/includes/LanguageFallbackChainFactory.php
1 file changed, 43 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/92/79192/1

diff --git a/lib/includes/LanguageFallbackChainFactory.php 
b/lib/includes/LanguageFallbackChainFactory.php
index 5ce24a8..7df40f6 100644
--- a/lib/includes/LanguageFallbackChainFactory.php
+++ b/lib/includes/LanguageFallbackChainFactory.php
@@ -216,7 +216,6 @@
 * @return LanguageFallbackChain
 */
public function newFromUserAndLanguageCode( User $user, $languageCode ) 
{
-   global $wgBabelCategoryNames;
wfProfileIn( __METHOD__ );
 
if ( !class_exists( 'Babel' ) || $user-isAnon() ) {
@@ -233,28 +232,7 @@
return $cached;
}
 
-   $babel = array();
-   $contextLanguage = array( $languageCode );
-
-   if ( count( $wgBabelCategoryNames ) ) {
-   // A little redundant but it's the only way to get 
required information with current Babel API.
-   $previousLevelBabel = array();
-   $babelCategoryNames = array_filter( 
$wgBabelCategoryNames, function( $category ) {
-   return $category !== false;
-   } );
-   krsort( $babelCategoryNames );
-   foreach ( $babelCategoryNames as $level = $_ ) {
-   // Make the current language at the top of the 
chain.
-   $levelBabel = array_unique( array_merge(
-   $contextLanguage, 
\Babel::getUserLanguages( $user, $level )
-   ) );
-   $babel[$level] = array_diff( $levelBabel, 
$previousLevelBabel );
-   $previousLevelBabel = $levelBabel;
-   }
-   } else {
-   // Just in case
-   $babel['N'] = $contextLanguage;
-   }
+   $babel = $this-getBabel( $languageCode, $user );
 
$chain = $this-buildFromBabel( $babel );
$languageFallbackChain = new LanguageFallbackChain( $chain );
@@ -265,6 +243,48 @@
return $languageFallbackChain;
}
 
+   protected function getBabel( $languageCode, $user ) {
+   $babel = array();
+   $contextLanguage = array( $languageCode );
+
+   $babelCategoryNames = $this-getBabelCategoryNames();
+
+   if ( count( $babelCategoryNames ) ) {
+   // A little redundant but it's the only way to get 
required information with current Babel API.
+   $previousLevelBabel = array();
+
+   foreach ( $babelCategoryNames as $level = $_ ) {
+   // Make the current language at the top of the 
chain.
+   $levelBabel = array_unique( array_merge(
+   $contextLanguage, 
\Babel::getUserLanguages( $user, $level )
+   ) );
+
+   $babel[$level] = array_diff( $levelBabel, 
$previousLevelBabel );
+   $previousLevelBabel = $levelBabel;
+   }
+   } else {
+   // Just in case
+   $babel['N'] = $contextLanguage;
+   }
+
+   return $babel;
+   }
+
+   protected function getBabelCategoryNames() {
+   global $wgBabelCategoryNames;
+
+   $babelCategoryNames = array_filter(
+   $wgBabelCategoryNames,
+   function( $category ) {
+   return $category !== false;
+   }
+   );
+
+   krsort( $babelCategoryNames );
+
+   return $babelCategoryNames;
+   }
+
/**
 * Build fallback chain array for a given babel array.
 *

-- 
To view, visit https://gerrit.wikimedia.org/r/79192
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7961b2c507da3661ce4c0a8bbaf994e80001b672
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Jeroen De Dauw jeroended...@gmail.com

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org

[MediaWiki-commits] [Gerrit] Reduce NPath complexity and improve readability - change (mediawiki...Wikibase)

2013-08-15 Thread Liangent (Code Review)
Liangent has submitted this change and it was merged.

Change subject: Reduce NPath complexity and improve readability
..


Reduce NPath complexity and improve readability

Change-Id: I7961b2c507da3661ce4c0a8bbaf994e80001b672
---
M lib/includes/LanguageFallbackChainFactory.php
1 file changed, 42 insertions(+), 23 deletions(-)

Approvals:
  Liangent: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/includes/LanguageFallbackChainFactory.php 
b/lib/includes/LanguageFallbackChainFactory.php
index 5ce24a8..b2106f6 100644
--- a/lib/includes/LanguageFallbackChainFactory.php
+++ b/lib/includes/LanguageFallbackChainFactory.php
@@ -216,7 +216,6 @@
 * @return LanguageFallbackChain
 */
public function newFromUserAndLanguageCode( User $user, $languageCode ) 
{
-   global $wgBabelCategoryNames;
wfProfileIn( __METHOD__ );
 
if ( !class_exists( 'Babel' ) || $user-isAnon() ) {
@@ -233,28 +232,7 @@
return $cached;
}
 
-   $babel = array();
-   $contextLanguage = array( $languageCode );
-
-   if ( count( $wgBabelCategoryNames ) ) {
-   // A little redundant but it's the only way to get 
required information with current Babel API.
-   $previousLevelBabel = array();
-   $babelCategoryNames = array_filter( 
$wgBabelCategoryNames, function( $category ) {
-   return $category !== false;
-   } );
-   krsort( $babelCategoryNames );
-   foreach ( $babelCategoryNames as $level = $_ ) {
-   // Make the current language at the top of the 
chain.
-   $levelBabel = array_unique( array_merge(
-   $contextLanguage, 
\Babel::getUserLanguages( $user, $level )
-   ) );
-   $babel[$level] = array_diff( $levelBabel, 
$previousLevelBabel );
-   $previousLevelBabel = $levelBabel;
-   }
-   } else {
-   // Just in case
-   $babel['N'] = $contextLanguage;
-   }
+   $babel = $this-getBabel( $languageCode, $user );
 
$chain = $this-buildFromBabel( $babel );
$languageFallbackChain = new LanguageFallbackChain( $chain );
@@ -265,6 +243,47 @@
return $languageFallbackChain;
}
 
+   protected function getBabel( $languageCode, $user ) {
+   $babel = array();
+
+   $babelCategoryNames = $this-getBabelCategoryNames();
+
+   if ( count( $babelCategoryNames ) ) {
+   // A little redundant but it's the only way to get 
required information with current Babel API.
+   $previousLevelBabel = array();
+
+   foreach ( $babelCategoryNames as $level = $_ ) {
+   // Make the current language at the top of the 
chain.
+   $levelBabel = array_unique( array_merge(
+   array( $languageCode ),
+   \Babel::getUserLanguages( $user, $level 
)
+   ) );
+
+   $babel[$level] = array_diff( $levelBabel, 
$previousLevelBabel );
+   $previousLevelBabel = $levelBabel;
+   }
+   } else {
+   $babel['N'] = array( $languageCode );
+   }
+
+   return $babel;
+   }
+
+   protected function getBabelCategoryNames() {
+   global $wgBabelCategoryNames;
+
+   $babelCategoryNames = array_filter(
+   $wgBabelCategoryNames,
+   function( $category ) {
+   return $category !== false;
+   }
+   );
+
+   krsort( $babelCategoryNames );
+
+   return $babelCategoryNames;
+   }
+
/**
 * Build fallback chain array for a given babel array.
 *

-- 
To view, visit https://gerrit.wikimedia.org/r/79192
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I7961b2c507da3661ce4c0a8bbaf994e80001b672
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Jeroen De Dauw jeroended...@gmail.com
Gerrit-Reviewer: Addshore addshorew...@gmail.com
Gerrit-Reviewer: Denny Vrandecic denny.vrande...@wikimedia.de
Gerrit-Reviewer: Liangent liang...@gmail.com
Gerrit-Reviewer: Tobias Gritschacher tobias.gritschac...@wikimedia.de
Gerrit-Reviewer: jenkins-bot