[MediaWiki-commits] [Gerrit] Track label usage with fallback from Lua. - change (mediawiki...Wikibase)
jenkins-bot has submitted this change and it was merged. Change subject: Track label usage with fallback from Lua. .. Track label usage with fallback from Lua. This change removed code that has become redundant by moving usage tracking away from the rendering logic into decorators for the lookup logic. In addition, this change includes several modifications to test cases to ensure that the SnakFormatter decorator is applied and configured correctly. Bug: T93056 Change-Id: I89abc34fe17d9be4377e65ef90f584836a47446f --- M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php M client/includes/DataAccess/Scribunto/SnakSerializationRenderer.php M client/includes/DataAccess/Scribunto/WikibaseLuaEntityBindings.php M client/includes/Usage/UsageAccumulator.php M client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibraryTest.php M client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php M client/tests/phpunit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php M client/tests/phpunit/includes/DataAccess/Scribunto/WikibaseLuaEntityBindingsTest.php M client/tests/phpunit/includes/Usage/UsageAccumulatorContractTester.php 10 files changed, 59 insertions(+), 160 deletions(-) Approvals: Addshore: Looks good to me, approved jenkins-bot: Verified diff --git a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php index 1d6e1f9..9c99c4b 100644 --- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php +++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php @@ -1,13 +1,14 @@ getLanguageFallbackChainFactory()->newFromLanguage( + $wgContLang, + LanguageFallbackChainFactory::FALLBACK_SELF | LanguageFallbackChainFactory::FALLBACK_VARIANTS + ); + $formatterOptions = new FormatterOptions( array( SnakFormatter::OPT_LANG => $wgContLang->getCode() ) ); - $usageAccumulator = new ParserOutputUsageAccumulator( $this->getParser()->getOutput() ); $snakFormatter = new UsageTrackingSnakFormatter( $wikibaseClient->getSnakFormatterFactory()->getSnakFormatter( - SnakFormatter::FORMAT_WIKI, $formatterOptions + SnakFormatter::FORMAT_WIKI, + $formatterOptions ), - $usageAccumulator, - array( $wgContLang->getCode() ) //FIXME: fallback + $this->getUsageAccumulator(), + $languageFallbackChain->getFetchLanguageCodes() ); $entityLookup = $wikibaseClient->getStore()->getEntityLookup(); @@ -71,12 +77,18 @@ return new WikibaseLuaEntityBindings( $entityStatementsRenderer, $wikibaseClient->getEntityIdParser(), - $usageAccumulator, $wikibaseClient->getSettings()->getSetting( 'siteGlobalID' ) ); } /** +* @return ParserOutputUsageAccumulator +*/ + public function getUsageAccumulator() { + return new ParserOutputUsageAccumulator( $this->getParser()->getOutput() ); + } + + /** * Register mw.wikibase.lua library * * @since 0.5 diff --git a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php index 41f4076..b3c8efd 100644 --- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php +++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php @@ -2,6 +2,7 @@ use Deserializers\Exceptions\DeserializationException; use ValueFormatters\FormatterOptions; +use Wikibase\Client\Usage\UsageTrackingSnakFormatter; use Wikibase\Client\Usage\UsageTrackingTermLookup; use Wikibase\Client\DataAccess\Scribunto\EntityAccessor; use Wikibase\Client\DataAccess\Scribunto\SnakSerializationRenderer; @@ -162,10 +163,16 @@ private function newSnakSerializationRenderer() { $wikibaseClient = WikibaseClient::getDefaultInstance(); - $formatterOptions = new FormatterOptions( array( 'language' => $this->getLanguage() ) ); + $formatterOptions = new FormatterOptions( array( + SnakFormatter::OPT_LANG => $this->getLanguage()->getCode() + ) ); - $snakFormatter = $wikibaseClient->getSnakFormatterFactory()->getSnakFormatter( - SnakFormatter::FORMAT_WIKI, $formatterOptions +
[MediaWiki-commits] [Gerrit] Track label usage with fallback from Lua. - change (mediawiki...Wikibase)
Daniel Kinzler has uploaded a new change for review. https://gerrit.wikimedia.org/r/210051 Change subject: Track label usage with fallback from Lua. .. Track label usage with fallback from Lua. This change removed code that has become redundant by moving usage tracking away from the rendering logic into decorators for the lookup logic. In addition, this change includes several modifications to test cases to ensure that the SnakFormatter decorator is applied and configured correctly. Bug: T93056 Change-Id: I89abc34fe17d9be4377e65ef90f584836a47446f --- M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php M client/includes/DataAccess/Scribunto/SnakSerializationRenderer.php M client/includes/DataAccess/Scribunto/WikibaseLuaEntityBindings.php M client/includes/Usage/UsageAccumulator.php M client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibraryTest.php M client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php M client/tests/phpunit/includes/DataAccess/Scribunto/SnakSerializationRendererTest.php M client/tests/phpunit/includes/DataAccess/Scribunto/WikibaseLuaEntityBindingsTest.php M client/tests/phpunit/includes/Usage/UsageAccumulatorContractTester.php 10 files changed, 59 insertions(+), 136 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/51/210051/1 diff --git a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php index 1d6e1f9..9c99c4b 100644 --- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php +++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php @@ -1,13 +1,14 @@ getLanguageFallbackChainFactory()->newFromLanguage( + $wgContLang, + LanguageFallbackChainFactory::FALLBACK_SELF | LanguageFallbackChainFactory::FALLBACK_VARIANTS + ); + $formatterOptions = new FormatterOptions( array( SnakFormatter::OPT_LANG => $wgContLang->getCode() ) ); - $usageAccumulator = new ParserOutputUsageAccumulator( $this->getParser()->getOutput() ); $snakFormatter = new UsageTrackingSnakFormatter( $wikibaseClient->getSnakFormatterFactory()->getSnakFormatter( - SnakFormatter::FORMAT_WIKI, $formatterOptions + SnakFormatter::FORMAT_WIKI, + $formatterOptions ), - $usageAccumulator, - array( $wgContLang->getCode() ) //FIXME: fallback + $this->getUsageAccumulator(), + $languageFallbackChain->getFetchLanguageCodes() ); $entityLookup = $wikibaseClient->getStore()->getEntityLookup(); @@ -71,12 +77,18 @@ return new WikibaseLuaEntityBindings( $entityStatementsRenderer, $wikibaseClient->getEntityIdParser(), - $usageAccumulator, $wikibaseClient->getSettings()->getSetting( 'siteGlobalID' ) ); } /** +* @return ParserOutputUsageAccumulator +*/ + public function getUsageAccumulator() { + return new ParserOutputUsageAccumulator( $this->getParser()->getOutput() ); + } + + /** * Register mw.wikibase.lua library * * @since 0.5 diff --git a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php index 153bfbe..2c69131 100644 --- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php +++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php @@ -2,6 +2,7 @@ use Deserializers\Exceptions\DeserializationException; use ValueFormatters\FormatterOptions; +use Wikibase\Client\Usage\UsageTrackingSnakFormatter; use Wikibase\Client\Usage\UsageTrackingTermLookup; use Wikibase\Lib\SnakFormatter; use Wikibase\Client\DataAccess\Scribunto\EntityAccessor; @@ -102,10 +103,16 @@ private function newSnakSerializationRenderer() { $wikibaseClient = WikibaseClient::getDefaultInstance(); - $formatterOptions = new FormatterOptions( array( 'language' => $this->getLanguage() ) ); + $formatterOptions = new FormatterOptions( array( + SnakFormatter::OPT_LANG => $this->getLanguage()->getCode() + ) ); - $snakFormatter = $wikibaseClient->getSnakFormatterFactory()->getSnakFormatter( - SnakFormatter::FORMAT_WI