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