oga/task/todo.rake

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