Redefine rake routes to add your own custom tag in Rails

Written by Deepak on July 12, 2013; tagged under , ,

WTFs per minute

The only valid measurement of code quality is: WTFs/minute

Now Rails has this nifty rake task called rake notes. You can always see notes for a custom tag by:

~> rake notes:custom ANNOTATION=WTF

But rake notes by default only shows notes for OPTIMIZE, FIXME and TODO
The Rakefile for changing those defaults is

# for re-defining the Rake task
# otherwise the previous Rake task is still called

desc "Enumerate all annotations 
      (use notes:optimize, :fixme, :todo, :wtf for focus)"
task :notes do
  SourceAnnotationExtractor.enumerate "OPTIMIZE|FIXME|TODO|WTF", 
                                      :tag => true

namespace :notes do
  task :wtf do
    SourceAnnotationExtractor.enumerate "WTF", :tag => true

Here we have redefined rake notes. The only gotcha is to remember
to clear the old rake task by calling task(:notes).clear

For other customizations eg. search the spec folder also
you will have to monkey-patch the SourceAnnotationExtractor class

PS: also check this Stackoverflow thread for some fun picks