[MediaWiki-commits] [Gerrit] mediawiki/core[master]: Make SiteStatsUpdate implement MergeableUpdate

2016-09-14 Thread Krinkle (Code Review)
Krinkle has submitted this change and it was merged.

Change subject: Make SiteStatsUpdate implement MergeableUpdate
..


Make SiteStatsUpdate implement MergeableUpdate

Change-Id: I53c9bf133f0707f2fa203ddd1a7fcb65be8b1329
---
M includes/deferred/SiteStatsUpdate.php
1 file changed, 14 insertions(+), 7 deletions(-)

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



diff --git a/includes/deferred/SiteStatsUpdate.php 
b/includes/deferred/SiteStatsUpdate.php
index d8bc35b..ab4a609 100644
--- a/includes/deferred/SiteStatsUpdate.php
+++ b/includes/deferred/SiteStatsUpdate.php
@@ -17,25 +17,24 @@
  *
  * @file
  */
+use Wikimedia\Assert\Assert;
 
 /**
  * Class for handling updates to the site_stats table
  */
-class SiteStatsUpdate implements DeferrableUpdate {
+class SiteStatsUpdate implements DeferrableUpdate, MergeableUpdate {
/** @var int */
protected $edits = 0;
-
/** @var int */
protected $pages = 0;
-
/** @var int */
protected $articles = 0;
-
/** @var int */
protected $users = 0;
-
/** @var int */
protected $images = 0;
+
+   private static $counters = [ 'edits', 'pages', 'articles', 'users', 
'images' ];
 
// @todo deprecate this constructor
function __construct( $views, $edits, $good, $pages = 0, $users = 0 ) {
@@ -45,6 +44,15 @@
$this->users = $users;
}
 
+   public function merge( MergeableUpdate $update ) {
+   /** @var SiteStatsUpdate $update */
+   Assert::parameterType( __CLASS__, $update, '$update' );
+
+   foreach ( self::$counters as $field ) {
+   $this->$field += $update->$field;
+   }
+   }
+
/**
 * @param array $deltas
 * @return SiteStatsUpdate
@@ -52,8 +60,7 @@
public static function factory( array $deltas ) {
$update = new self( 0, 0, 0 );
 
-   $fields = [ 'views', 'edits', 'pages', 'articles', 'users', 
'images' ];
-   foreach ( $fields as $field ) {
+   foreach ( self::$counters as $field ) {
if ( isset( $deltas[$field] ) && $deltas[$field] ) {
$update->$field = $deltas[$field];
}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I53c9bf133f0707f2fa203ddd1a7fcb65be8b1329
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz 
Gerrit-Reviewer: Krinkle 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] mediawiki/core[master]: Make SiteStatsUpdate implement MergeableUpdate

2016-09-14 Thread Aaron Schulz (Code Review)
Aaron Schulz has uploaded a new change for review.

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

Change subject: Make SiteStatsUpdate implement MergeableUpdate
..

Make SiteStatsUpdate implement MergeableUpdate

Change-Id: I53c9bf133f0707f2fa203ddd1a7fcb65be8b1329
---
M includes/deferred/SiteStatsUpdate.php
1 file changed, 14 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/78/310578/1

diff --git a/includes/deferred/SiteStatsUpdate.php 
b/includes/deferred/SiteStatsUpdate.php
index d8bc35b..850f3ae 100644
--- a/includes/deferred/SiteStatsUpdate.php
+++ b/includes/deferred/SiteStatsUpdate.php
@@ -17,25 +17,23 @@
  *
  * @file
  */
-
+use Wikimedia\Assert\Assert;
 /**
  * Class for handling updates to the site_stats table
  */
-class SiteStatsUpdate implements DeferrableUpdate {
+class SiteStatsUpdate implements DeferrableUpdate, MergeableUpdate {
/** @var int */
protected $edits = 0;
-
/** @var int */
protected $pages = 0;
-
/** @var int */
protected $articles = 0;
-
/** @var int */
protected $users = 0;
-
/** @var int */
protected $images = 0;
+
+   private static $counters = [ 'edits', 'pages', 'articles', 'users', 
'images' ];
 
// @todo deprecate this constructor
function __construct( $views, $edits, $good, $pages = 0, $users = 0 ) {
@@ -45,6 +43,15 @@
$this->users = $users;
}
 
+   public function merge( MergeableUpdate $update ) {
+   /** @var SiteStatsUpdate $update */
+   Assert::parameterType( __CLASS__, $update, '$update' );
+
+   foreach ( self::$counters as $field ) {
+   $this->$field += $update->$field;
+   }
+   }
+
/**
 * @param array $deltas
 * @return SiteStatsUpdate
@@ -52,8 +59,7 @@
public static function factory( array $deltas ) {
$update = new self( 0, 0, 0 );
 
-   $fields = [ 'views', 'edits', 'pages', 'articles', 'users', 
'images' ];
-   foreach ( $fields as $field ) {
+   foreach ( self::$counters as $field ) {
if ( isset( $deltas[$field] ) && $deltas[$field] ) {
$update->$field = $deltas[$field];
}

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I53c9bf133f0707f2fa203ddd1a7fcb65be8b1329
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits