Class: Xcov::Core::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/xcov-core.rb

Class Method Summary collapse

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