[MediaWiki-commits] [Gerrit] Track usage via Lua - change (mediawiki...Wikibase)

2014-11-15 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Track usage via Lua
..


Track usage via Lua

Entity usages via the wikibase Lua modules need to be tracked
in the UsageTracker service.

Bug: 71288
Change-Id: Ib47e3d9348f60b50c176162ca686cb06672fdfe9
---
M client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php
M client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php
M client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php
M client/includes/scribunto/WikibaseLuaBindings.php
M client/includes/scribunto/WikibaseLuaEntityBindings.php
M 
client/tests/phpunit/includes/scribunto/Scribunto_LuaWikibaseEntityLibraryTest.php
M client/tests/phpunit/includes/scribunto/Scribunto_LuaWikibaseLibraryTest.php
M client/tests/phpunit/includes/scribunto/WikibaseLuaBindingsTest.php
M client/tests/phpunit/includes/scribunto/WikibaseLuaEntityBindingsTest.php
9 files changed, 193 insertions(+), 41 deletions(-)

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



diff --git 
a/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php 
b/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php
index 8af6deb..2632ff9 100644
--- 
a/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php
+++ 
b/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php
@@ -132,6 +132,7 @@
}
 
/**
+* @todo Share code with WikibaseLuaEntityBindings::trackUsage
 * @param Snak[] $snaks
 */
private function trackUsage( array $snaks ) {
@@ -153,6 +154,8 @@
}
 
/**
+* @todo Share code with WikibaseLuaEntityBindings.
+*
 * @param EntityId $entityId
 * @param PropertyId $propertyId
 *
diff --git a/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php 
b/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php
index 67323e7..5d43ab4 100644
--- a/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php
+++ b/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php
@@ -2,6 +2,7 @@
 
 use ValueFormatters\FormatterOptions;
 use Wikibase\Client\Scribunto\WikibaseLuaEntityBindings;
+use Wikibase\Client\Usage\ParserOutputUsageAccumulator;
 use Wikibase\Client\WikibaseClient;
 use Wikibase\Lib\SnakFormatter;
 
@@ -21,13 +22,15 @@
 */
private $wbLibrary;
 
-   /**
-* Constructor for wrapper class, initialize member object holding 
implementation
-*
-* @param Scribunto_LuaEngine $engine
-* @since 0.5
-*/
-   public function __construct( $engine ) {
+   private function getImplementation() {
+   if ( !$this-wbLibrary ) {
+   $this-wbLibrary = $this-newImplementation();
+   }
+
+   return $this-wbLibrary;
+   }
+
+   private function newImplementation() {
// For the language we need $wgContLang, not parser target 
language or anything else.
// See Scribunto_LuaLanguageLibrary::getContLangCode().
global $wgContLang;
@@ -40,14 +43,13 @@
SnakFormatter::FORMAT_WIKI, $formatterOptions
);
 
-   $this-wbLibrary = new WikibaseLuaEntityBindings(
+   return new WikibaseLuaEntityBindings(
$snakFormatter,
$wikibaseClient-getStore()-getEntityLookup(),
+   new ParserOutputUsageAccumulator( 
$this-getParser()-getOutput() ),
$wikibaseClient-getSettings()-getSetting( 
'siteGlobalID' ),
$wgContLang
);
-
-   parent::__construct( $engine );
}
 
/**
@@ -76,7 +78,7 @@
 * @return string[]
 */
public function getGlobalSiteId() {
-   return array( $this-wbLibrary-getGlobalSiteId() );
+   return array( $this-getImplementation()-getGlobalSiteId() );
}
 
/**
@@ -99,7 +101,7 @@
$this-checkType( 'formatPropertyValues', 1, $propertyId, 
'string' );
$this-checkType( 'formatPropertyValues', 2, $acceptableRanks, 
'table' );
try {
-   return array( $this-wbLibrary-formatPropertyValues( 
$entityId, $propertyId, $acceptableRanks ) );
+   return array( 
$this-getImplementation()-formatPropertyValues( $entityId, $propertyId, 
$acceptableRanks ) );
} catch ( InvalidArgumentException $e ) {
throw new ScribuntoException( 
'wikibase-error-invalid-entity-id' );
}
diff --git a/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php 
b/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php
index 5abe2aa..5a9fac5 100644
--- 

[MediaWiki-commits] [Gerrit] Track usage via Lua - change (mediawiki...Wikibase)

2014-11-10 Thread Daniel Kinzler (Code Review)
Daniel Kinzler has uploaded a new change for review.

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

Change subject: Track usage via Lua
..

Track usage via Lua

Entity usages via the wikibase Lua modules need to be tracked
in the UsageTracker service.

Bug: 71288
Change-Id: Ib47e3d9348f60b50c176162ca686cb06672fdfe9
---
M client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php
M client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php
M client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php
M client/includes/scribunto/WikibaseLuaBindings.php
M client/includes/scribunto/WikibaseLuaEntityBindings.php
M client/tests/phpunit/includes/scribunto/WikibaseLuaBindingsTest.php
M client/tests/phpunit/includes/scribunto/WikibaseLuaEntityBindingsTest.php
7 files changed, 150 insertions(+), 12 deletions(-)


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

diff --git 
a/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php 
b/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php
index 84fa3c6..b72fd48 100644
--- 
a/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php
+++ 
b/client/includes/DataAccess/PropertyParserFunction/LanguageAwareRenderer.php
@@ -135,6 +135,7 @@
}
 
/**
+* @todo Share code with WikibaseLuaEntityBindings::trackUsage
 * @param Snak[] $snaks
 */
private function trackUsage( array $snaks ) {
@@ -156,12 +157,14 @@
}
 
/**
+* @todo Share code with WikibaseLuaEntityBindings.
+*
 * @param EntityId $entityId
 * @param PropertyId $propertyId
 *
 * @return Status a status object wrapping a wikitext string
 */
-   private function renderWithStatus( EntityId $entityId, PropertyId 
$propertyId ) {
+   public function renderWithStatus( EntityId $entityId, PropertyId 
$propertyId ) {
wfProfileIn( __METHOD__ );
 
$snaks = $this-snaksFinder-findSnaks(
diff --git a/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php 
b/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php
index 67323e7..7e60d76 100644
--- a/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php
+++ b/client/includes/scribunto/Scribunto_LuaWikibaseEntityLibrary.php
@@ -2,6 +2,7 @@
 
 use ValueFormatters\FormatterOptions;
 use Wikibase\Client\Scribunto\WikibaseLuaEntityBindings;
+use Wikibase\Client\Usage\ParserOutputUsageAccumulator;
 use Wikibase\Client\WikibaseClient;
 use Wikibase\Lib\SnakFormatter;
 
@@ -43,6 +44,7 @@
$this-wbLibrary = new WikibaseLuaEntityBindings(
$snakFormatter,
$wikibaseClient-getStore()-getEntityLookup(),
+   new ParserOutputUsageAccumulator( 
$this-getEngine()-getParser()-getOutput() ),
$wikibaseClient-getSettings()-getSetting( 
'siteGlobalID' ),
$wgContLang
);
diff --git a/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php 
b/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php
index a546cf3..330b022 100644
--- a/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php
+++ b/client/includes/scribunto/Scribunto_LuaWikibaseLibrary.php
@@ -1,6 +1,7 @@
 ?php
 
 use Wikibase\Client\Scribunto\WikibaseLuaBindings;
+use Wikibase\Client\Usage\ParserOutputUsageAccumulator;
 use Wikibase\Client\WikibaseClient;
 use Wikibase\DataModel\Entity\EntityIdParsingException;
 use Wikibase\Utils;
@@ -51,6 +52,7 @@
$wikibaseClient-getSettings(),
$wikibaseClient-getPropertyDataTypeLookup(),
$labelLookup,
+   new ParserOutputUsageAccumulator( 
$this-getEngine()-getParser()-getOutput() ),
Utils::getLanguageCodes(),
$wikibaseClient-getSettings()-getSetting( 
'siteGlobalID' )
);
diff --git a/client/includes/scribunto/WikibaseLuaBindings.php 
b/client/includes/scribunto/WikibaseLuaBindings.php
index f1f5568..e771911 100644
--- a/client/includes/scribunto/WikibaseLuaBindings.php
+++ b/client/includes/scribunto/WikibaseLuaBindings.php
@@ -5,6 +5,7 @@
 use Language;
 use InvalidArgumentException;
 use OutOfBoundsException;
+use Wikibase\Client\Usage\UsageAccumulator;
 use Wikibase\DataModel\Entity\Entity;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\EntityIdParser;
@@ -81,6 +82,11 @@
private $labelLookup;
 
/**
+* @var UsageAccumulator
+*/
+   private $usageAccumulator;
+
+   /**
 * @param EntityIdParser $entityIdParser
 * @param EntityLookup $entityLookup
 * @param SiteLinkLookup $siteLinkTable
@@ -89,6 +95,7 @@
 * @param SettingsArray