lib/android_lint/plugin.rb in danger-android_lint-0.0.9 vs lib/android_lint/plugin.rb in danger-android_lint-0.0.10

- old
+ new

@@ -167,13 +167,17 @@ message = "" results.each do |r| location = r.xpath('location').first filename = location.get('file').gsub(dir, "") - next unless !filtering || (target_files.include? filename) - line = location.get('line') || 'N/A' + next unless (!filtering && !filtering_lines) || (target_files.include? filename) + line = location.get('line').to_i || 'N/A' reason = r.get('message') + if filtering_lines + added_lines = parse_added_line_numbers(git.diff[filename].patch) + next unless added_lines.include? line + end count = count + 1 message << "`#{filename}` | #{line} | #{reason} \n" end if count != 0 header = "#### #{heading} (#{count})\n\n" @@ -187,11 +191,11 @@ # Send inline comment with danger's warn or fail method # # @return [void] - def send_inline_comment (issues) + def send_inline_comment(issues) target_files = (git.modified_files - git.deleted_files) + git.added_files dir = "#{Dir.pwd}/" SEVERITY_LEVELS.reverse.each do |level| filtered = issues.select{|issue| issue.get("severity") == level} next if filtered.empty? @@ -199,40 +203,40 @@ location = r.xpath('location').first filename = location.get('file').gsub(dir, "") next unless (!filtering && !filtering_lines) || (target_files.include? filename) line = (location.get('line') || "0").to_i if filtering_lines - added_lines = parseDiff(git.diff[filename].patch) + added_lines = parse_added_line_numbers(git.diff[filename].patch) next unless added_lines.include? line end send(level === "Warning" ? "warn" : "fail", r.get('message'), file: filename, line: line) end end end - # parses git diff of a file and retuns an array of added line numbers. - def parseDiff(diff) + # Parses git diff of a file and retuns an array of added line numbers. + def parse_added_line_numbers(diff) current_line_number = nil - added_lines = [] + added_line_numbers = [] diff_lines = diff.strip.split("\n") diff_lines.each_with_index do |line, index| if m = /\+(\d+)(?:,\d+)? @@/.match(line) # (e.g. @@ -32,10 +32,7 @@) current_line_number = Integer(m[1]) else if !current_line_number.nil? if line.start_with?('+') # added line - added_lines.push current_line_number + added_line_numbers.push current_line_number current_line_number += 1 elsif !line.start_with?('-') # unmodified line current_line_number += 1 end end end end - added_lines + added_line_numbers end def gradlew_exists? `ls gradlew`.strip.empty? == false end