26 lines
		
	
	
		
			538 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			538 B
		
	
	
	
		
			Ruby
		
	
	
	
desc 'Extracts TODO tags and the likes'
 | 
						|
task :todo do
 | 
						|
  pattern = /(NOTE|FIXME|TODO|THINK|@todo)(.+)/
 | 
						|
  found   = Hash.new { |hash, key| hash[key] = [] }
 | 
						|
 | 
						|
  Dir.glob('lib/**/*.{rb,rl,y}').each do |file|
 | 
						|
    File.open(file, 'r') do |handle|
 | 
						|
      handle.each_line.each_with_index do |line, index|
 | 
						|
        if line =~ pattern
 | 
						|
          found[file] << [index + 1, $1 + $2]
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  found.each do |file, notes|
 | 
						|
    puts file
 | 
						|
 | 
						|
    notes.each do |(nr, line)|
 | 
						|
      puts "#{nr}: #{line}"
 | 
						|
    end
 | 
						|
 | 
						|
    puts
 | 
						|
  end
 | 
						|
end
 |