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'