Class: Danger::DangerXcodeSummary
- Inherits:
-
Plugin
- Object
- Plugin
- Danger::DangerXcodeSummary
- Defined in:
- lib/xcode_summary/plugin.rb
Overview
Shows all build errors, warnings and unit tests results generated from ‘xcodebuild`. You need to use the `xcresult` produced by Xcode 11. It’s located in the Derived Data folder.
Defined Under Namespace
Classes: Location, Result, Warning
Instance Attribute Summary collapse
-
#ignored_files ⇒ [String]
A globbed string or array of strings which should match the files that you want to ignore warnings on.
-
#ignored_results(&block) ⇒ Block
A block that filters specific results.
-
#ignores_warnings ⇒ Boolean
Defines if warnings should be included or not Defaults to ‘false`.
-
#inline_mode ⇒ Boolean
Defines if using inline comment or not.
-
#project_root ⇒ Object
rubocop:disable Lint/DuplicateMethods.
-
#sort_warnings_by(&block) ⇒ Block
A block that sorts the warning results.
-
#sticky_summary ⇒ Boolean
Defines if the test summary will be sticky or not.
-
#strict ⇒ Boolean
Defines errors strict.
-
#test_summary ⇒ Boolean
Defines if the build summary is shown or not.
Instance Method Summary collapse
-
#plugin ⇒ void
Pick a Dangerfile plugin for a chosen request_source and cache it based on github.com/danger/danger/blob/master/lib/danger/plugin_support/plugin.rb#L31.
-
#report(file_path) ⇒ void
Reads a ‘.xcresult` and reports it.
-
#warning_error_count(file_path) ⇒ String
Reads a ‘.xcresult` and reports its warning and error count.
Instance Attribute Details
#ignored_files ⇒ [String]
A globbed string or array of strings which should match the files that you want to ignore warnings on. Defaults to nil. An example would be ‘’/Pods/‘` to ignore warnings in Pods that your project uses.
38 39 40 |
# File 'lib/xcode_summary/plugin.rb', line 38 def ignored_files @ignored_files end |
#ignored_results(&block) ⇒ Block
A block that filters specific results. An example would be ‘lambda { |result| result.message.start_with?(’ld’) }‘ to ignore results for ld_warnings.
45 46 47 |
# File 'lib/xcode_summary/plugin.rb', line 45 def ignored_results @ignored_results end |
#ignores_warnings ⇒ Boolean
Defines if warnings should be included or not Defaults to ‘false`.
77 78 79 |
# File 'lib/xcode_summary/plugin.rb', line 77 def ignores_warnings @ignores_warnings end |
#inline_mode ⇒ Boolean
Defines if using inline comment or not. Defaults to ‘false`.
71 72 73 |
# File 'lib/xcode_summary/plugin.rb', line 71 def inline_mode @inline_mode end |
#project_root ⇒ Object
rubocop:disable Lint/DuplicateMethods
30 31 32 |
# File 'lib/xcode_summary/plugin.rb', line 30 def project_root @project_root end |
#sort_warnings_by(&block) ⇒ Block
A block that sorts the warning results. An example would be ‘lambda { |warning| warning.message.include?(“deprecated”) ? 1 : 0 }` to sort results for deprecated warnings.
65 66 67 |
# File 'lib/xcode_summary/plugin.rb', line 65 def sort_warnings_by @sort_warnings_by end |
#sticky_summary ⇒ Boolean
Defines if the test summary will be sticky or not. Defaults to ‘false`.
51 52 53 |
# File 'lib/xcode_summary/plugin.rb', line 51 def sticky_summary @sticky_summary end |
#strict ⇒ Boolean
Defines errors strict. If value is ‘false`, then errors will be reporting as warnings. Defaults to `true`
83 84 85 |
# File 'lib/xcode_summary/plugin.rb', line 83 def strict @strict end |
#test_summary ⇒ Boolean
Defines if the build summary is shown or not. Defaults to ‘true`.
57 58 59 |
# File 'lib/xcode_summary/plugin.rb', line 57 def test_summary @test_summary end |
Instance Method Details
#plugin ⇒ void
This method returns an undefined value.
Pick a Dangerfile plugin for a chosen request_source and cache it based on github.com/danger/danger/blob/master/lib/danger/plugin_support/plugin.rb#L31
128 129 130 131 |
# File 'lib/xcode_summary/plugin.rb', line 128 def plugin plugins = Plugin.all_plugins.select { |plugin| Dangerfile.essential_plugin_classes.include? plugin } @plugin ||= plugins.select { |p| p.method_defined? :html_link }.map { |p| p.new(@dangerfile) }.compact.first end |
#report(file_path) ⇒ void
This method returns an undefined value.
Reads a ‘.xcresult` and reports it.
138 139 140 141 142 143 144 145 |
# File 'lib/xcode_summary/plugin.rb', line 138 def report(file_path) if File.exist?(file_path) xcode_summary = XCResult::Parser.new(path: file_path) format_summary(xcode_summary) else fail 'summary file not found' end end |
#warning_error_count(file_path) ⇒ String
Reads a ‘.xcresult` and reports its warning and error count.
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/xcode_summary/plugin.rb', line 151 def warning_error_count(file_path) if File.exist?(file_path) xcode_summary = XCResult::Parser.new(path: file_path) warning_count = 0 error_count = 0 xcode_summary.actions_invocation_record.actions.each do |action| warning_count += warnings(action).count error_count += errors(action).count end result = { warnings: warning_count, errors: error_count } result.to_json else fail 'summary file not found' end end |