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

AbstractImportation::import()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 16
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 13
c 1
b 0
f 1
dl 0
loc 16
ccs 0
cts 16
cp 0
rs 9.8333
cc 3
nc 3
nop 2
crap 12
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