Method: MetricFu::Saikuro::SFile#merge_classes

Defined in:
lib/generators/saikuro.rb

#merge_classesObject



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/generators/saikuro.rb', line 135

def merge_classes
  new_elements = []
  get_class_names.each do |target_class|
    elements = @elements.find_all {|el| el.name == target_class }
    complexity = 0
    lines = 0
    defns = []
    elements.each do |el|
      complexity += el.complexity.to_i
      lines += el.lines.to_i
      defns << el.defs
    end
 
    new_element = {:class_name => target_class,
                   :complexity => complexity,
                   :lines => lines,
                   :methods => defns.flatten.map {|d| d.to_h}}
    new_element[:methods] = new_element[:methods].
                            sort_by {|x| x[:complexity] }.
                            reverse
 
    new_elements << new_element
  end
  @elements = new_elements if new_elements
end