Class: Danger::DangerAndroidLint
- Inherits:
-
Plugin
- Object
- Plugin
- Danger::DangerAndroidLint
- Defined in:
- lib/android_lint/plugin.rb
Overview
Lint files of a gradle based Android project. This is done using the Android’s [Lint](developer.android.com/studio/write/lint.html) tool. Results are passed out as tables in markdown.
Constant Summary collapse
- SEVERITY_LEVELS =
["Warning", "Error", "Fatal"]
Instance Attribute Summary collapse
-
#filtering ⇒ Object
Enable filtering Only show messages within changed files.
-
#filtering_lines ⇒ Object
Only shows messages for the modified lines.
-
#gradle_task ⇒ String
A getter for
gradle_task, returning “lint” if value is nil. -
#report_file ⇒ String
A getter for
report_file. -
#severity ⇒ String
A getter for
severity, returning “Warning” if value is nil. -
#skip_gradle_task ⇒ Boolean
A getter for
skip_gradle_task, returningfalseif value is nil.
Instance Method Summary collapse
-
#lint(inline_mode: false) ⇒ void
Calls lint task of your gradle project.
Instance Attribute Details
#filtering ⇒ Object
Enable filtering Only show messages within changed files.
85 86 87 |
# File 'lib/android_lint/plugin.rb', line 85 def filtering @filtering end |
#filtering_lines ⇒ Object
Only shows messages for the modified lines.
88 89 90 |
# File 'lib/android_lint/plugin.rb', line 88 def filtering_lines @filtering_lines end |
#gradle_task ⇒ String
A getter for gradle_task, returning “lint” if value is nil.
50 51 52 |
# File 'lib/android_lint/plugin.rb', line 50 def gradle_task @gradle_task end |
#report_file ⇒ String
A getter for report_file.
38 39 40 |
# File 'lib/android_lint/plugin.rb', line 38 def report_file @report_file end |
#severity ⇒ String
A getter for severity, returning “Warning” if value is nil.
79 80 81 |
# File 'lib/android_lint/plugin.rb', line 79 def severity @severity || SEVERITY_LEVELS.first end |
#skip_gradle_task ⇒ Boolean
A getter for skip_gradle_task, returning false if value is nil.
66 67 68 |
# File 'lib/android_lint/plugin.rb', line 66 def skip_gradle_task @skip_gradle_task ||= false end |
Instance Method Details
#lint(inline_mode: false) ⇒ void
This method returns an undefined value.
Calls lint task of your gradle project. It fails if gradlew cannot be found inside current directory. It fails if severity level is not a valid option. It fails if xmlReport configuration is not set to true in your build.gradle file.
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/android_lint/plugin.rb', line 96 def lint(inline_mode: false) unless skip_gradle_task return fail("Could not find `gradlew` inside current directory") unless gradlew_exists? end unless SEVERITY_LEVELS.include?(severity) fail("'#{severity}' is not a valid value for `severity` parameter.") return end unless skip_gradle_task system "./gradlew #{gradle_task}" end unless File.exists?(report_file) fail("Lint report not found at `#{report_file}`. "\ "Have you forgot to add `xmlReport true` to your `build.gradle` file?") end issues = read_issues_from_report filtered_issues = filter_issues_by_severity(issues) = "" if inline_mode # Report with inline comment send_inline_comment(filtered_issues) else = (filtered_issues) markdown("### AndroidLint found issues\n\n" + ) unless .to_s.empty? end end |