Class: MetricFu::Saikuro::ParsingElement

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/saikuro.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) ⇒ ParsingElement

Returns a new instance of ParsingElement.


195
196
197
198
199
200
201
202
# File 'lib/generators/saikuro.rb', line 195

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


192
193
194
# File 'lib/generators/saikuro.rb', line 192

def complexity
  @complexity
end

#defsObject (readonly)

Returns the value of attribute defs


192
193
194
# File 'lib/generators/saikuro.rb', line 192

def defs
  @defs
end

#element_typeObject (readonly)

Returns the value of attribute element_type


192
193
194
# File 'lib/generators/saikuro.rb', line 192

def element_type
  @element_type
end

#linesObject (readonly)

Returns the value of attribute lines


192
193
194
# File 'lib/generators/saikuro.rb', line 192

def lines
  @lines
end

#nameObject

Returns the value of attribute name


193
194
195
# File 'lib/generators/saikuro.rb', line 193

def name
  @name
end

Instance Method Details

#<<(line) ⇒ Object


204
205
206
# File 'lib/generators/saikuro.rb', line 204

def <<(line)
  @defs << Saikuro::ParsingElement.new(line)
end

#to_hObject


208
209
210
211
212
213
214
215
216
217
218
219
# File 'lib/generators/saikuro.rb', line 208

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
  return base
end