Passed
Push — master ( bc50e8...c76903 )
by Natan
03:40
created

SniffParser::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace SnifferReport\Service;
4
5
use SnifferReport\Model\Sniff;
6
use SnifferReport\Model\File;
7
use SnifferReport\Model\Message;
8
9
class SniffParser
10
{
11
12
  /**
13
   * Parses CodeSniffer results into a Sniff object.
14
   *
15
   * @param $sniff_results
16
   *
17
   * @return Sniff
18
   */
19
    public function parseSniff($sniff_results)
20
    {
21
        $sniff = new Sniff();
22
        foreach ($sniff_results as $file_name => $sniff_result) {
23
            $name_prefix = FILES_DIRECTORY_ROOT . '/';
24
            $file_name = str_replace($name_prefix, '', $file_name);
25
            $file = $this->parseFile($file_name, $sniff_result);
26
            $sniff->addFile($file);
27
        }
28
        return $sniff;
29
    }
30
31
  /**
32
   * Parses a file from the CodeSniffer result into an object.
33
   *
34
   * @param $file_name
35
   * @param $sniff_result
36
   *
37
   * @return File
38
   */
39
    private function parseFile($file_name, $sniff_result)
40
    {
41
        $file = new File($file_name);
42
        foreach ($sniff_result->messages as $sniff_message) {
43
            $message_obj = $this->parseMessage($sniff_message);
44
            $file->addMessages($message_obj);
45
        }
46
        return $file;
47
    }
48
49
  /**
50
   * Parses a message from the CodeSniffer file into an object.
51
   *
52
   * @param $sniff_message
53
   *
54
   * @return Message
55
   */
56
    private function parseMessage($sniff_message)
57
    {
58
        $message = $sniff_message->message;
59
        $source = $sniff_message->source;
60
        $severity = $sniff_message->severity;
61
        $type = $sniff_message->type;
62
        $line = $sniff_message->line;
63
        $column = $sniff_message->column;
64
        $fixable = $sniff_message->fixable;
65
        $message_obj = new Message($message, $source, $severity, $type, $line, $column, $fixable);
66
        return $message_obj;
67
    }
68
}
69