class Covered::Config
def self.coverage
def self.coverage ENV['COVERAGE'] end
def self.load(root: Dir.pwd, coverage: self.coverage)
def self.load(root: Dir.pwd, coverage: self.coverage) derived = Class.new(self) if path = self.path(root) config = Module.new config.module_eval(::File.read(path), path) derived.prepend(config) end return derived.new(root, coverage) end
def self.path(root)
def self.path(root) path = ::File.join(root, PATH) if ::File.exist?(path) return path end end
def call(output)
def call(output) policy.call(output) end
def disable
def disable policy.disable end
def each(&block)
def each(&block) policy.each(&block) end
def enable
def enable policy.enable end
def flush
def flush policy.flush end
def initialize(root, coverage)
def initialize(root, coverage) @root = root @coverage = coverage @policy = nil end
def make_policy(policy)
def make_policy(policy) policy.cache! # Only files in the root would be tracked: policy.root(@root) # We will ignore any files in the test or spec directory: policy.skip(/^.*\/(test|spec|vendor|config)\//) # We will include all files under lib, even if they aren't loaded: policy.include("lib/**/*.rb") policy.persist! policy.source policy.reports!(@coverage) end
def output
def output policy.output end
def policy
def policy @policy ||= Policy.new.tap{|policy| make_policy(policy)}.freeze end
def record?
def record? !!@coverage end