Completed
Pull Request — master (#1109)
by Abdeali
01:32
created

bears.linters.RubyLintBear._get_groupdict()   A

Complexity

Conditions 2

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 2
dl 0
loc 8
rs 9.4286
1
import re
2
3
from coalib.bearlib.abstractions.Lint import Lint
4
from coalib.bears.LocalBear import LocalBear
5
from coalib.results.RESULT_SEVERITY import RESULT_SEVERITY
6
7
8
class RubyLintBear(LocalBear, Lint):
9
    executable = 'ruby'
10
    arguments = '-wc'
11
    output_regex = re.compile(
12
        r'(?P<file_name>.+?):(?P<line>\d+): (?P<message>'
13
        r'(?:(?P<error>.*?error)|(?P<warning>warning))[,:] [^\r\n]+)\r?\n'
14
        r'(?:^[^\r\n]+\r?\n^(?P<col>.*?)\^)?')
15
    use_stderr = True
16
17
    @staticmethod
18
    def _get_groupdict(match):
19
        groups = Lint._get_groupdict(match)
20
        if groups["error"] != None:
21
            groups["severity"] = RESULT_SEVERITY.MAJOR
22
        else:
23
            groups["severity"] = RESULT_SEVERITY.NORMAL
24
        return groups
25
26
    def run(self, filename, file):
27
        '''
28
        Checks the code with `ruby -wc` on each file separately.
29
        '''
30
        return self.lint(filename)
31