Sha256: 00fdda0e8874d60ab6904fcafc8361fea099e89d4c3e9afe21f481b8b0791697
Contents?: true
Size: 1.67 KB
Versions: 1
Compression:
Stored size: 1.67 KB
Contents
# XXX: need to include BUG in list # XXX: need to include BUG in my rubocop config # BUG need to fix the fact that we create blank lines on files with no issues module Punchlist # Counts the number of 'todo' comments in your code. class Punchlist def initialize(args, outputter: STDOUT, globber: Dir, file_opener: File) @args = args @outputter = outputter @globber = globber @file_opener = file_opener end def run if @args[0] == '--glob' @source_files_glob = @args[1] elsif @args[0] @outputter.puts "USAGE: punchlist\n" return 0 # XXX: need to vary return based on good or bad arguments end analyze_files 0 end def source_files_glob @source_files_glob ||= '{app,lib,test,spec,feature}/**/*.{rb,swift,scala,js,cpp,c,java,py}' end def analyze_files all_output = [] source_files.each do |filename| all_output.concat(look_for_punchlist_items(filename)) end @outputter.print render(all_output) end def source_files @globber.glob(source_files_glob) end def punchlist_line_regexp /XXX|TODO/ end def look_for_punchlist_items(filename) lines = [] line_num = 0 @file_opener.open(filename, 'r') do |file| file.each_line do |line| line_num += 1 lines << [filename, line_num, line] if line =~ punchlist_line_regexp end end lines end def render(output) lines = output.map do |filename, line_num, line| "#{filename}:#{line_num}: #{line}" end lines.join end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
punchlist-0.0.2 | lib/punchlist.rb |