Sha256: f9f2b01edc977bd67754521d23ce99aa3f8ce5e96f9a4dd25a1e6f88b1e72d94
Contents?: true
Size: 1.58 KB
Versions: 6
Compression:
Stored size: 1.58 KB
Contents
module Xcov class IgnoreHandler attr_accessor :list def initialize @list = IgnoreHandler.read_ignore_file end def should_ignore_file filename return false if @list.empty? return true if @list.include?(filename) # Evaluate possible regexs return @list.any? { |pattern| filename =~ Regexp.new("#{pattern}$") } end def should_ignore_file_at_path path # Ignore specific files filename = File.basename(path) return true if should_ignore_file(filename) # Also ignore the files from ignored folders relative = relative_path(path) return @list.any? { |ignored_path| relative_path(path).start_with? ignored_path } end # Static methods def self.read_ignore_file require "yaml" ignore_file_path = Xcov.config[:ignore_file_path] ignore_list = [] begin ignore_list = YAML.load_file(ignore_file_path) rescue UI.message "Skipping file blacklisting as no ignore file was found at path #{ignore_file_path}".yellow end return ignore_list end # Auxiliary methods # Returns a relative path against `source_directory`. def relative_path path require 'pathname' full_path = Pathname.new(path).realpath # /full/path/to/project/where/is/file.extension base_path = Pathname.new(source_directory).realpath # /full/path/to/project/ full_path.relative_path_from(base_path).to_s # where/is/file.extension end def source_directory Xcov.config[:source_directory] || Dir.pwd end end end
Version data entries
6 entries across 6 versions & 1 rubygems