process_ast

in lib/tasks/helpers/ast_processor.rb [12:42]


    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