class Scan::ReportCollector
Constants
- SUPPORTED
Public Class Methods
new(open_report, output_types, output_directory, use_clang_report_name, custom_report_file_name = nil)
click to toggle source
Intialize with values from Scan.config
matching these param names
# File lib/scan/report_collector.rb, line 6 def initialize(open_report, output_types, output_directory, use_clang_report_name, custom_report_file_name = nil) @open_report = open_report @output_types = output_types @output_directory = output_directory @use_clang_report_name = use_clang_report_name @custom_report_file_name = custom_report_file_name end
Public Instance Methods
determine_output_file_name(type)
click to toggle source
# File lib/scan/report_collector.rb, line 60 def determine_output_file_name(type) if @use_clang_report_name && type == "json-compilation-database" "compile_commands.json" elsif !@custom_report_file_name.nil? @custom_report_file_name else "report.#{type}" end end
generate_commands(path, types: nil, output_file_name: nil)
click to toggle source
Returns a hash containing the resulting path as key and the command as value
# File lib/scan/report_collector.rb, line 33 def generate_commands(path, types: nil, output_file_name: nil) types ||= @output_types types = types.split(",") if types.kind_of?(String) # might already be an array when passed via fastlane commands = {} types.each do |raw| type = raw.strip unless SUPPORTED.include?(type) UI.error("Couldn't find reporter '#{type}', available #{SUPPORTED.join(', ')}") next end output_path = output_file_name || File.join(File.expand_path(@output_directory), determine_output_file_name(type)) parts = ["cat '#{path}' | "] parts << "xcpretty" parts << "--report #{type}" parts << "--output '#{output_path}'" parts << "&> /dev/null " commands[output_path] = parts.join(" ") end return commands end
parse_raw_file(path)
click to toggle source
# File lib/scan/report_collector.rb, line 14 def parse_raw_file(path) UI.user_error!("Couldn't find file at path '#{path}'") unless File.exist?(path) commands = generate_commands(path) commands.each do |output_path, command| if system(command) UI.success("Successfully generated report at '#{output_path}'") else UI.user_error!("Failed to generate report at '#{output_path}'") end if @open_report and output_path.end_with?(".html") # Open the HTML file `open --hide '#{output_path}'` end end end