lib/todoist/diff_todo_finder.rb in danger-todoist-0.1.0 vs lib/todoist/diff_todo_finder.rb in danger-todoist-0.2.0
- old
+ new
@@ -2,24 +2,25 @@
# Identify todos in a set of diffs
class DiffTodoFinder
TODO_REGEXP = /
^\+ # we only look at additions, marked by + in diffs
\s* # followed by optional space
- [^a-z0-9]* # anything looking like a comment indicator
+ [^a-z0-9\+]* # anything looking like a comment indicator, not a +
\s+ # followed by at least one space
(TODO|FIXME) # our todo indicator
[\s:]{1} # followed by a space or colon
(?<text>.*)$ # matching any text until the end of the line
/ix
def find_diffs_containing_todos(diffs)
todos = []
diffs.each do |diff|
- matches = diff.patch.match(TODO_REGEXP)
- next if matches.nil?
+ matches = diff.patch.scan(TODO_REGEXP)
+ next if matches.empty?
- text = matches[1] if matches[1]
- todos << Todo.new(diff.path, text.strip)
+ matches.each do |match|
+ todos << Todo.new(diff.path, match.first.strip)
+ end
end
todos
end
class Todo < Struct.new(:file, :text)