lib/covered/config.rb in covered-0.25.1 vs lib/covered/config.rb in covered-0.26.0

- old
+ new

@@ -19,36 +19,36 @@ if ::File.exist?(path) return path end end - def self.coverage + def self.reports ENV['COVERAGE'] end - def self.load(root: self.root, coverage: self.coverage) + def self.load(root: self.root, reports: self.reports) 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) + return derived.new(root, reports) end - def initialize(root, coverage) + def initialize(root, reports) @root = root - @coverage = coverage + @reports = reports @policy = nil @environment = nil end def report? - !!@coverage + !!@reports end alias :record? :report? attr :coverage @@ -59,40 +59,52 @@ def output policy.output end + # Start coverage tracking. def start # Save and setup the environment: @environment = ENV.to_h autostart! # Start coverage tracking: policy.start end + # Finish coverage tracking. def finish # Finish coverage tracking: policy.finish # Restore the environment: ENV.replace(@environment) @environment = nil end + # Generate coverage reports to the given output. + # @param output [IO] The output stream to write the coverage report to. def call(output) policy.call(output) end def each(&block) policy.each(&block) end + # Which paths to ignore when computing coverage for a given project. + # @returns [Array(String)] An array of relative paths to ignore. def ignore_paths ['test/', 'fixtures/', 'spec/', 'vendor/', 'config/'] end + # Which paths to include when computing coverage for a given project. + # @returns [Array(String)] An array of relative patterns to include, e.g. `"lib/**/*.rb"`. + def include_patterns + ["lib/**/*.rb"] + end + # Override this method to implement your own policy. def make_policy(policy) # Only files in the root would be tracked: policy.root(@root) @@ -102,14 +114,16 @@ # We will ignore any files in the test or spec directory: policy.skip(Regexp.union(patterns)) # We will include all files under lib, even if they aren't loaded: - policy.include("lib/**/*.rb") + include_patterns.each do |pattern| + policy.include(pattern) + end policy.persist! - policy.reports!(@coverage) + policy.reports!(@reports) end protected REQUIRE_COVERED_AUTOSTART = '-rcovered/autostart'