jenkins-bot has submitted this change and it was merged. Change subject: Refactor DataAccessSnakFormatterFactory ......................................................................
Refactor DataAccessSnakFormatterFactory This is split from If613ac0 to make it easier to review. The goal is to reduce duplication. Otherwise there would be the same if-else in multiple places in the code base, just to call these two methods that don't do anything but turning their name into a string parameter. Bug: T113955 Change-Id: I1308fb883af64d8e9df3d27dba0b044f19f40cc5 --- M client/includes/DataAccess/DataAccessSnakFormatterFactory.php M client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php M client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php M client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php 6 files changed, 24 insertions(+), 56 deletions(-) Approvals: Hoo man: Looks good to me, approved jenkins-bot: Verified diff --git a/client/includes/DataAccess/DataAccessSnakFormatterFactory.php b/client/includes/DataAccess/DataAccessSnakFormatterFactory.php index 703e47c..d5a2797 100644 --- a/client/includes/DataAccess/DataAccessSnakFormatterFactory.php +++ b/client/includes/DataAccess/DataAccessSnakFormatterFactory.php @@ -57,48 +57,19 @@ } /** - * This returns a SnakFormatter that will return wikitext escaped plain text. - * The only exception are URLs, these are plain text, but not escaped in any - * way. + * This returns a SnakFormatter that will return either "rich" wikitext, or wikitext escaped + * plain text. The only exception are URLs, these are not escaped but plain text. * * @param Language $language * @param UsageAccumulator $usageAccumulator + * @param string $type Either "escaped-plaintext" or "rich-wikitext". * * @return SnakFormatter */ - public function newEscapedPlainTextSnakFormatter( + public function newWikitextSnakFormatter( Language $language, - UsageAccumulator $usageAccumulator - ) { - return $this->newSnakFormatter( 'escaped-plaintext', $language, $usageAccumulator ); - } - - /** - * This returns a SnakFormatter that will return "rich" wikitext. - * - * @param Language $language - * @param UsageAccumulator $usageAccumulator - * - * @return SnakFormatter - */ - public function newRichWikitextSnakFormatter( - Language $language, - UsageAccumulator $usageAccumulator - ) { - return $this->newSnakFormatter( 'rich-wikitext', $language, $usageAccumulator ); - } - - /** - * @param string $type - * @param Language $language - * @param UsageAccumulator $usageAccumulator - * - * @return SnakFormatter - */ - private function newSnakFormatter( - $type, - Language $language, - UsageAccumulator $usageAccumulator + UsageAccumulator $usageAccumulator, + $type = 'escaped-plaintext' ) { $fallbackChain = $this->languageFallbackChainFactory->newFromLanguage( $language, diff --git a/client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php b/client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php index 1187d26..224eac1 100644 --- a/client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php +++ b/client/includes/DataAccess/PropertyParserFunction/StatementGroupRendererFactory.php @@ -109,17 +109,11 @@ Language $language, UsageAccumulator $usageAccumulator ) { - if ( $type === 'rich-wikitext' ) { - $snakFormatter = $this->dataAccessSnakFormatterFactory->newRichWikitextSnakFormatter( - $language, - $usageAccumulator - ); - } else { - $snakFormatter = $this->dataAccessSnakFormatterFactory->newEscapedPlainTextSnakFormatter( - $language, - $usageAccumulator - ); - } + $snakFormatter = $this->dataAccessSnakFormatterFactory->newWikitextSnakFormatter( + $language, + $usageAccumulator, + $type + ); $entityStatementsRenderer = new StatementTransclusionInteractor( $language, diff --git a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php index 2fc0cfc..92b7ab6 100644 --- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php +++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseEntityLibrary.php @@ -41,13 +41,14 @@ $wikibaseClient = WikibaseClient::getDefaultInstance(); $snakFormatterFactory = $wikibaseClient->getDataAccessSnakFormatterFactory(); - $plainTextSnakFormatter = $snakFormatterFactory->newEscapedPlainTextSnakFormatter( + $plainTextSnakFormatter = $snakFormatterFactory->newWikitextSnakFormatter( $lang, $this->getUsageAccumulator() ); - $richWikitextSnakFormatter = $snakFormatterFactory->newRichWikitextSnakFormatter( + $richWikitextSnakFormatter = $snakFormatterFactory->newWikitextSnakFormatter( $lang, - $this->getUsageAccumulator() + $this->getUsageAccumulator(), + 'rich-wikitext' ); $entityLookup = $wikibaseClient->getRestrictedEntityLookup(); diff --git a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php index 18c23e2..bfae22e 100644 --- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php +++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php @@ -221,7 +221,7 @@ $wikibaseClient = WikibaseClient::getDefaultInstance(); $snakFormatterFactory = $wikibaseClient->getDataAccessSnakFormatterFactory(); - $snakFormatter = $snakFormatterFactory->newEscapedPlainTextSnakFormatter( + $snakFormatter = $snakFormatterFactory->newWikitextSnakFormatter( $this->getLanguage(), $this->getUsageAccumulator() ); diff --git a/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php b/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php index 331342f..c92b9f9 100644 --- a/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php +++ b/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterFactoryTest.php @@ -84,7 +84,7 @@ public function testNewEscapedPlainTextSnakFormatter() { $factory = $this->getDataAccessSnakFormatterFactory( SnakFormatter::FORMAT_PLAIN ); - $snakFormatter = $factory->newEscapedPlainTextSnakFormatter( + $snakFormatter = $factory->newWikitextSnakFormatter( Language::factory( 'fr' ), $this->getMock( UsageAccumulator::class ) ); @@ -107,9 +107,10 @@ */ public function testRichWikitextSnakFormatter( Snak $snak, $expected ) { $factory = $this->getDataAccessSnakFormatterFactory( SnakFormatter::FORMAT_WIKI ); - $snakFormatter = $factory->newRichWikitextSnakFormatter( + $snakFormatter = $factory->newWikitextSnakFormatter( Language::factory( 'fr' ), - $this->getMock( UsageAccumulator::class ) + $this->getMock( UsageAccumulator::class ), + 'rich-wikitext' ); $this->assertSame( $expected, $snakFormatter->formatSnak( $snak ) ); diff --git a/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php b/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php index 3d36bda..744b1b8 100644 --- a/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php +++ b/client/tests/phpunit/includes/DataAccess/DataAccessSnakFormatterOutputFormatTest.php @@ -235,9 +235,10 @@ public function testRichWikitextOutput( $expected, $snak ) { // This is an integration test, use the global factory $factory = WikibaseClient::getDefaultInstance()->getDataAccessSnakFormatterFactory(); - $formatter = $factory->newRichWikitextSnakFormatter( + $formatter = $factory->newWikitextSnakFormatter( Language::factory( 'en' ), - $this->getMock( UsageAccumulator::class ) + $this->getMock( UsageAccumulator::class ), + 'rich-wikitext' ); $this->assertSame( $expected, $formatter->formatSnak( $snak ) ); @@ -286,7 +287,7 @@ public function testEscapedPlainTextOutput( $expected, $snak ) { // This is an integration test, use the global factory $factory = WikibaseClient::getDefaultInstance()->getDataAccessSnakFormatterFactory(); - $formatter = $factory->newEscapedPlainTextSnakFormatter( + $formatter = $factory->newWikitextSnakFormatter( Language::factory( 'en' ), $this->getMock( UsageAccumulator::class ) ); -- To view, visit https://gerrit.wikimedia.org/r/320790 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I1308fb883af64d8e9df3d27dba0b044f19f40cc5 Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de> Gerrit-Reviewer: Hoo man <h...@online.de> Gerrit-Reviewer: Jackmcbarn <jackmcb...@gmail.com> Gerrit-Reviewer: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits