Passed
Push — master ( cd700d...07ef79 )
by Jean Paul
09:52 queued 12s
created

GuessGenderTransformer   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 14
c 1
b 0
f 0
dl 0
loc 40
rs 10
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A transform() 0 15 2
1
<?php
2
3
namespace Coco\SourceWatcher\Core\Transformers;
4
5
use Coco\SourceWatcher\Core\Row;
6
use Coco\SourceWatcher\Core\Transformer;
7
8
use GenderDetector\GenderDetector;
9
10
/**
11
 *
12
 */
13
class GuessGenderTransformer extends Transformer
14
{
15
    /**
16
     * @var string
17
     */
18
    protected string $country;
19
20
    /**
21
     * @var string
22
     */
23
    protected string $firstNameField;
24
25
    /**
26
     * @var string
27
     */
28
    protected string $genderField;
29
30
    /**
31
     * @var array|string[]
32
     */
33
    protected array $availableOptions = [ "country", "firstNameField", "genderField" ];
34
35
    /**
36
     * @param Row $row
37
     */
38
    public function transform ( Row $row )
39
    {
40
        $firstName = $row->get($this->firstNameField);
41
        echo "firstName = " . $firstName . PHP_EOL;
42
43
        $currentGender = $row->get($this->genderField);
44
        echo "currentGender = " . $currentGender . PHP_EOL;
45
46
        if (empty($currentGender)) {
47
            $genderDetector = new GenderDetector();
48
49
            $gender = $genderDetector->detect($firstName, $this->country);
0 ignored issues
show
Bug introduced by
It seems like $firstName can also be of type null; however, parameter $name of GenderDetector\GenderDetector::detect() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

49
            $gender = $genderDetector->detect(/** @scrutinizer ignore-type */ $firstName, $this->country);
Loading history...
50
            echo "gender = " . $gender . PHP_EOL;
51
52
            $row->set( $this->genderField, $gender );
53
        }
54
    }
55
}
56