# File lib/kwala/actions/code_duplication.rb, line 86
  def find_duplicate_code(dir=Dir.pwd)
    require "rexml/document"
    results = Array.new
    Open3.popen3( cpd_command(dir) ) do |stdin, stdout, stderr|
      xml = time_out_readlines(stdout)
      if cpd_error?(stderr) || xml.first == "IO readlines timed out."
        return results
      end
      doc = REXML::Document.new(xml.join("\n"))
      doc.elements.each("pmd-cpd/duplication") do |dup|
        results << {
          :duplicate =>  {
            :entry_num => results.size,
            :lines => dup.attribute("lines").to_s,
            :tokens => dup.attribute("tokens").to_s,
            :code_fragement => highlight_code(dup.elements["codefragment"].cdatas.to_s),
            :files => dup.get_elements("file").map { |f|
              {
                :path => f.attribute("path").to_s,
                :line => f.attribute("line").to_s
              }
            },
          }
        }
      end
    end
    results
  end