1# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14# frozen_string_literal: true 15 16# 17# Huawei Technologies Co.,Ltd. 18require 'optparse' 19require 'yaml' 20require 'erb' 21 22class UncoveredMd 23 attr_accessor :uncovered 24 25 def initialize(uncovered) 26 @template_file = File.join(__dir__, 'templates', 'uncovered_md.erb') 27 @uncovered = uncovered['groups'] 28 end 29 30 def generate(file) 31 File.open(file, 'w+') do |f| 32 f.write(render) 33 end 34 end 35 36 private 37 38 def format_array(i) 39 i.nil? ? '' : i['format'].join(', ').gsub(/_/, '\\_') 40 end 41 42 def props(properties) 43 "[#{md(properties.join(', '))}]" 44 end 45 46 def md(str) 47 str.gsub(/_/, '\\_').gsub(/\n/, ' ').rstrip 48 end 49 50 def render 51 @template = File.read(@template_file) 52 ERB.new(@template, nil, '%-').result(binding) 53 end 54end 55