Class: MetricFu::SaikuroParsingElement

Inherits:
Object
  • Object
show all
Defined in:
lib/metric_fu/metrics/saikuro/parsing_element.rb

Constant Summary collapse

TYPE_REGEX =
/Type:(.*) Name/
NAME_REGEX =
/Name:(.*) Complexity/
COMPLEXITY_REGEX =
/Complexity:(.*) Lines/
LINES_REGEX =
/Lines:(.*)/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(line) ⇒ SaikuroParsingElement

Returns a new instance of SaikuroParsingElement.



11
12
13
14
15
16
17
18
# File 'lib/metric_fu/metrics/saikuro/parsing_element.rb', line 11

def initialize(line)
  @line = line
  @element_type = line.match(TYPE_REGEX)[1].strip
  @name = line.match(NAME_REGEX)[1].strip
  @complexity = line.match(COMPLEXITY_REGEX)[1].strip
  @lines = line.match(LINES_REGEX)[1].strip
  @defs = []
end

Instance Attribute Details

#complexityObject (readonly)

Returns the value of attribute complexity.



8
9
10
# File 'lib/metric_fu/metrics/saikuro/parsing_element.rb', line 8

def complexity
  @complexity
end

#defsObject (readonly)

Returns the value of attribute defs.



8
9
10
# File 'lib/metric_fu/metrics/saikuro/parsing_element.rb', line 8

def defs
  @defs
end

#element_typeObject (readonly)

Returns the value of attribute element_type.



8
9
10
# File 'lib/metric_fu/metrics/saikuro/parsing_element.rb', line 8

def element_type
  @element_type
end

#linesObject (readonly)

Returns the value of attribute lines.



8
9
10
# File 'lib/metric_fu/metrics/saikuro/parsing_element.rb', line 8

def lines
  @lines
end

#nameObject

Returns the value of attribute name.



9
10
11
# File 'lib/metric_fu/metrics/saikuro/parsing_element.rb', line 9

def name
  @name
end

Instance Method Details

#<<(line) ⇒ Object



20
21
22
# File 'lib/metric_fu/metrics/saikuro/parsing_element.rb', line 20

def <<(line)
  @defs << MetricFu::SaikuroParsingElement.new(line)
end

#to_hObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/metric_fu/metrics/saikuro/parsing_element.rb', line 24

def to_h
  base = { name: @name, complexity: @complexity.to_i, lines: @lines.to_i }
  unless @defs.empty?
    defs = @defs.map do |my_def|
      my_def = my_def.to_h
      my_def.delete(:defs)
      my_def
    end
    base[:defs] = defs
  end
  base
end