Class: Xcov::Core::Parser
- Inherits:
-
Object
- Object
- Xcov::Core::Parser
- Defined in:
- lib/xcov-core.rb
Class Method Summary collapse
- .execute_command(command, description) ⇒ Object
- .parse(file, output_directory, ide_foundation_path) ⇒ Object
Class Method Details
.execute_command(command, description) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/xcov-core.rb', line 29 def self.execute_command(command, description) FastlaneCore::CommandExecutor.execute( command: command, print_all: true, print_command: true, prefix: description, loading: "Loading...", error: proc do |error_output| begin Xcov::ErrorHandler.handle_error(error_output) rescue => ex Xcov::SlackPoster.new.run({ build_errors: 1 }) raise ex end end ) end |
.parse(file, output_directory, ide_foundation_path) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/xcov-core.rb', line 16 def self.parse(file, output_directory, ide_foundation_path) tmp_dir = File.join(output_directory, 'tmp') FileUtils.mkdir_p(tmp_dir) unless File.directory?(tmp_dir) report_output = Tempfile.new("report.json", tmp_dir) binary_path = ide_foundation_path.nil? ? ENV['XCOV_CORE_LEGACY_BINARY_PATH'] : ENV['XCOV_CORE_BINARY_PATH'] command = "#{binary_path.shellescape} -s #{file.shellescape} -o #{report_output.path.shellescape}" command << " --ide-foundation-path #{ide_foundation_path}" unless ide_foundation_path.nil? description = [{ prefix: "Parsing .xccoverage file: " }] execute_command(command, description) output_file = File.read(report_output.path) JSON.parse(output_file) end |