require "json"

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
end