13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/tasks/helpers/ast_processor.rb', line 13
def process_ast(ast, stats)
traverser = AstTraverser.new
traverser.walk(ast)
return if traverser.stats.empty?
traverser.stats.each do |component, component_info|
stats[component] ||= {
paths: []
}
stats[component][:paths] << component_info[:path]
stats[component][:paths].uniq!
stats[component][:arguments] ||= {}
component_info[:arguments]&.each do |arg, value|
arg_name = arg.to_s
stats[component][:arguments][arg_name] ||= {}
if arg_name == "classes"
value.split.each do |val|
increment(stats, component, arg_name, val)
end
else
increment(stats, component, arg_name, value)
end
end
end
end
|