Test Failed
Push — master ( 2ebd79...2dee01 )
by Jean-Christophe
01:41 queued 13s
created

AbstractImportation   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 4
eloc 16
c 1
b 0
f 1
dl 0
loc 29
ccs 0
cts 19
cp 0
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 2 1
A import() 0 16 3
1
<?php
2
namespace Ubiquity\translation\import;
3
4
use Ubiquity\translation\MessagesUpdates;
5
use Ubiquity\translation\MessagesDomain;
6
use Ubiquity\translation\TranslatorManager;
7
8
abstract class AbstractImportation {
9
10
	protected $file;
11
12
	public function __construct($file) {
13
		$this->file = $file;
14
	}
15
16
	/**
17
	 * return array
18
	 */
19
	public abstract function load();
20
21
	public function import($locale, $domain) {
22
		$msgDomain = new MessagesDomain($locale, TranslatorManager::getLoader(), $domain);
23
		$msgDomain->load();
24
		$messages = $msgDomain->getMessages();
25
		$messagesUpdates = new MessagesUpdates($locale, $domain);
26
		$messagesUpdates->load();
27
		$messages = $messagesUpdates->mergeMessages($messages);
28
		$newMessages = $this->load();
29
		foreach ($newMessages as $k => $msg) {
30
			if (! isset($messages[$k])) {
31
				$messagesUpdates->addValue($k, $msg, uniqid('key'));
32
			} else {
33
				$messagesUpdates->updateValue($k, $msg);
34
			}
35
		}
36
		$messagesUpdates->save();
37
	}
38
}
39
40