Completed
Push — extensions-support ( f3b32a...74d037 )
by Patrick
03:10
created

Translatable::getLocale()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
ccs 2
cts 2
cp 1
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace LaravelDoctrine\Fluent\Extensions\Gedmo;
4
5
use Gedmo\Translatable\Mapping\Driver\Fluent as FluentDriver;
6
use LaravelDoctrine\Fluent\Buildable;
7
use LaravelDoctrine\Fluent\Builders\Field;
8
use LaravelDoctrine\Fluent\Extensions\ExtensibleClassMetadata;
9
10
class Translatable implements Buildable
11
{
12
    const MACRO_METHOD = 'translatable';
13
14
    /**
15
     * @var ExtensibleClassMetadata
16
     */
17
    protected $classMetadata;
18
19
    /**
20
     * @var string
21
     */
22
    protected $fieldName;
23
24
    /**
25
     * @param ExtensibleClassMetadata $classMetadata
26
     * @param string                  $fieldName
27
     */
28 2
    public function __construct(ExtensibleClassMetadata $classMetadata, $fieldName)
29
    {
30 2
        $this->classMetadata = $classMetadata;
31 2
        $this->fieldName     = $fieldName;
32 2
    }
33
34
    /**
35
     * Return the name of the actual extension.
36
     *
37
     * @return string
38
     */
39 1
    public function getExtensionName()
40
    {
41 1
        return FluentDriver::EXTENSION_NAME;
42
    }
43
44
    /**
45
     * @return void
46
     */
47
    public static function enable()
48
    {
49 1
        Field::macro(static::MACRO_METHOD, function (Field $builder) {
50 1
            return new static($builder->getClassMetadata(), $builder->getName());
51 1
        });
52
53 1
        Locale::enable();
54 1
        TranslationClass::enable();
55 1
    }
56
57
    /**
58
     * Execute the build process
59
     */
60 1
    public function build()
61
    {
62 1
        $this->classMetadata->appendExtension($this->getExtensionName(), [
63
            'fields' => [
64 1
                $this->fieldName
65 1
            ]
66 1
        ]);
67 1
    }
68
}
69