Search code examples
ruby-on-railsrubycode-metrics

ruby code quality checker that could catch debugger statement


I am looking for a ruby code quality checker that could catch or notify if something like a 'debugger' statement gets accidentally committed to ruby code. It would also be ideal if it could look in a rails project and scan any places that may contain ruby code like a haml file.

The idea would be that this would be run with cruisecontrol.rb and against a code base where there are holes in test coverage.


Solution

  • Don't over-think it! Just write a simple script to search for it over your app's directory.

    Using command-line grep:

    grep -r --include='*.rb' debugger .
    

    Using ack:

    ack --type=ruby debugger
    

    Using Ruby's grep:

    Dir['**/*.rb'].each do |path|
      File.open(path, 'r') do |file|
        file.grep /debugger/ do
          puts path
        end
      end
    end
    

    (Ruby code lovingly adapted from _why's Wearing Ruby Slippers to Work)

    You might also want to consider searching over Javascript files for "debugger" as well, and possibly "console.log", etc.

    You may also want to make this be more strict to reduce false positives by using something like /^\s*debugger\s*$/ to only match it when it's the only thing on the line. Adapting this to work for HAML probably requires a bit more: /^\s*[-=]\s*debugger\s*$/.