Sha256: 8b0ff9e373b76dd54a383356c8e797b673656feb6c6cacbfdc7e77a8f1e297b0
Contents?: true
Size: 1.63 KB
Versions: 7
Compression:
Stored size: 1.63 KB
Contents
# frozen_string_literal: true module DeepCover require 'sass' require_relative 'base' require_relative 'index' require_relative 'source' module Reporter::HTML class Site < Reporter::Base include Memoize memoize :analysis def path Pathname(options[:output]) end def save clear save_assets save_index save_pages end def clear path.mkpath path.rmtree path.mkpath end def compile_stylesheet(source, dest) css = Sass::Engine.for_file(source, style: :expanded).to_css File.write(dest, css) end def render_index Tools.render_template(:index, Index.new(self)) end def save_index path.join('index.html').write(render_index) end def save_assets require 'fileutils' src = "#{__dir__}/template/assets" dest = path.join('assets') FileUtils.cp_r(src, dest) compile_stylesheet "#{src}/deep_cover.css.sass", dest.join('deep_cover.css') dest.join('deep_cover.css.sass').delete end def render_source(partial_path, covered_code) Tools.render_template(:source, Source.new(analysis.analyser_map.fetch(covered_code), partial_path)) end def save_pages each do |partial_path, covered_code| dest = path.join("#{partial_path}.html") dest.dirname.mkpath dest.write(render_source(partial_path, covered_code)) end end def self.save(coverage, output:, **options) Site.new(coverage, output: output, **options).save end end end end
Version data entries
7 entries across 7 versions & 1 rubygems