class Xcov::IgnoreHandler
Attributes
list[RW]
Public Class Methods
new()
click to toggle source
# File lib/xcov/ignore_handler.rb, line 7 def initialize # We downcase ignored patterns in order to simulate a case-insensitive # comparison later @list = IgnoreHandler.read_ignore_file.map { |file| file.downcase } end
read_ignore_file()
click to toggle source
Static methods
# File lib/xcov/ignore_handler.rb, line 36 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
Public Instance Methods
relative_path(path)
click to toggle source
Returns a relative path against `source_directory`.
# File lib/xcov/ignore_handler.rb, line 52 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
should_ignore_file(filename)
click to toggle source
# File lib/xcov/ignore_handler.rb, line 13 def should_ignore_file filename return false if @list.empty? # perform case-insensitive comparisons downcased_filename = filename.downcase return true if @list.include?(downcased_filename) # Evaluate possible regexs return @list.any? { |pattern| downcased_filename =~ Regexp.new("#{pattern}$") } end
should_ignore_file_at_path(path)
click to toggle source
# File lib/xcov/ignore_handler.rb, line 24 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).downcase return @list.any? { |ignored_path| relative.start_with? ignored_path } end
source_directory()
click to toggle source
# File lib/xcov/ignore_handler.rb, line 61 def source_directory Xcov.config[:source_directory] || Dir.pwd end