class MetricFu::SaikuroParsingElement

Constants

COMPLEXITY_REGEX
LINES_REGEX
NAME_REGEX
TYPE_REGEX

Attributes

complexity[R]
defs[R]
element_type[R]
lines[R]
name[RW]

Public Class Methods

new(line) click to toggle source
# 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

Public Instance Methods

<<(line) click to toggle source
# File lib/metric_fu/metrics/saikuro/parsing_element.rb, line 20
def <<(line)
  @defs << MetricFu::SaikuroParsingElement.new(line)
end
to_h() click to toggle source
# 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