# File lib/kwala/lib/code_analyzer.rb, line 381
  def summarize
    fst = @fa_files.first
    vals = fst.instance_variables.map { |iv| iv[1..-1] }
    # remove the instance variables we set that are not related to data tracking.
    vals = vals - ["file", "tl_ref"]
    t_v = vals.map do |v|
      res = fst.send(v)

      if res.is_a?(Array)
        p = Proc.new { |v| v.size }
      else
        p = Proc.new { |v| v.to_i }
      end
      [v, p]
    end

    res = Hash.new { |h,k| h[k] = [] }
    @fa_files.each do |f|
      t_v.each do |method, calc|
        res[method]<< calc.call( f.send(method) )
      end
    end


    base_sum = Hash.new(0)

    res.sort.each do |key, val|
      r = val.inject(0) { |t, v| t + v }
      base_sum[key] = r
    end

    print_summary_header(base_sum)

    extra_summary( [ ["static_methods", "static methods"],
                     ["g_vars", "global variables"],
                     ["c_vars", "class variables"],
                     ["i_vars", "instance variables"],
                     ["constants", "constants"],
                     ["methods", "methods"],
                     ["classes", "classes"],
                     ["modules", "modules"],
                     ["symbols", "symbols"],
                     ["aliases", "aliases"],
                     ["undefs", "undefs"]
                   ] )

  end