Completed
Push — master ( 2659cb...a970ae )
by Oscar
04:55
created

Yaml::toString()   B

Complexity

Conditions 4
Paths 5

Size

Total Lines 24
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 4
eloc 14
c 1
b 0
f 1
nc 5
nop 2
dl 0
loc 24
rs 8.6845
1
<?php
2
3
namespace Gettext\Generators;
4
5
use Gettext\Translations;
6
use Gettext\Utils\DictionaryTrait;
7
use Symfony\Component\Yaml\Yaml as YamlDumper;
8
9
class Yaml extends Generator implements GeneratorInterface
10
{
11
    public static $options = [
12
        'inline' => 3,
13
        'indent' => 2,
14
    ];
15
16
    use DictionaryTrait;
17
18
    /**
19
     * {@inheritdoc}
20
     */
21
    public static function toString(Translations $translations, array $options = [])
22
    {
23
        $options += static::$options;
24
25
        $messages = [];
26
27
        foreach ($translations as $translation) {
28
            $context = $translation->getContext();
29
            $original = $translation->getOriginal();
30
31
            if (!isset($messages[$context])) {
32
                $messages[$context] = [];
33
            }
34
            
35
            if ($translation->hasPluralTranslations()) {
36
                $messages[$context][$original] = $translation->getPluralTranslations();
37
                array_unshift($messages[$context][$original], $translation->getTranslation());
38
            } else {
39
                $messages[$context][$original] = $translation->getTranslation();
40
            }
41
        }
42
43
        return YamlDumper::dump($messages, $options['inline'], $options['indent']);
44
    }
45
}
46