Sha256: 439d600f998eddd4c6cbd8c649b39b75dd5be307ded16c4849d1785d3853eb79
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
require "xccov/parse/version" require "json" require 'open3' class Xccov class Parse attr_reader :data def initialize(file: nil, json: nil) @data = JSON.parse(json) if json @data = JSON.parse(File.read(file)) if file end def targets_name @data.map { |data| data["name"] } end def targets_line_coverage @data.reduce({}) do |memo, data| memo.merge({ data["name"] => data["lineCoverage"] }) end end end # @example # # xccov = Xccov.new # xccov.help # json = xccov.view '--only-targets', '--json', '/path/to/Build/Logs/Test/*.xccovreport' # parsed = Xccov::Parse.new(json: json) # parsed.targets_line_coverage["test.examples.app"] #=> 0.35 # def initialize @xccov = "#{get_xcrun} xccov" end private def run(*args) cmd = args.join ' ' sto, ste, status = Open3.capture3(cmd) if status.success? sto else puts ste raise(sto) end end def method_missing(method, *args, &_block) if respond_to_missing? run(@xccov, method, args) else super end end def respond_to_missing? true end def get_xcrun cmd = `which xcrun`.strip return cmd unless cmd.empty? raise "You should install xcrun" end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
xccov-parse-0.1.0 | lib/xccov/parse.rb |