Passed
Push — master ( 6f6d9e...e32a3c )
by Paul
04:05
created

Upgrader::setReviewCounts__3_0_0()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 0
cts 3
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Modules;
4
5
use GeminiLabs\SiteReviews\Application;
6
use GeminiLabs\SiteReviews\Database;
7
use GeminiLabs\SiteReviews\Database\OptionManager;
8
use ReflectionClass;
9
use ReflectionMethod;
10
11
class Upgrader
12
{
13 7
	public function run()
14
	{
15 7
		$routines = (new ReflectionClass( __CLASS__ ))->getMethods( ReflectionMethod::IS_PROTECTED );
16 7
		$routines = array_column( $routines, 'name' );
17 7
		natsort( $routines );
18 7
		array_walk( $routines, function( $routine ) {
19 7
			$parts = explode( '__', $routine );
20 7
			if( version_compare( glsr()->version, end( $parts ), '>=' ))return;
21
			call_user_func( [$this, $routine] );
22 7
		});
23 7
		$this->updateVersion();
24 7
	}
25
26
	/**
27
	 * @return void
28
	 */
29 7
	public function updateVersion()
30
	{
31 7
		$currentVersion = glsr( OptionManager::class )->get( 'version' );
32 7
		if( version_compare( $currentVersion, glsr()->version, '<' )) {
33 6
			glsr( OptionManager::class )->set( 'version', glsr()->version );
34
		}
35 7
		if( $currentVersion != glsr()->version ) {
36 6
			glsr( OptionManager::class )->set( 'version_upgraded_from', $currentVersion );
37
		}
38 7
	}
39
40
	/**
41
	 * @return void
42
	 */
43
	protected function setReviewCounts__3_0_0()
44
	{
45
		$counts = glsr( Database::class )->buildReviewCounts();
46
		glsr( OptionManager::class )->set( 'counts', $counts );
47
	}
48
}
49