Class: Covered::Config
- Inherits:
-
Object
- Object
- Covered::Config
- Defined in:
- lib/covered/config.rb
Constant Summary collapse
- PATH =
"config/covered.rb"
Instance Attribute Summary collapse
-
#coverage ⇒ Object
readonly
Returns the value of attribute coverage.
Class Method Summary collapse
- .coverage ⇒ Object
- .load(root: self.root, coverage: self.coverage) ⇒ Object
- .path(root) ⇒ Object
- .root ⇒ Object
Instance Method Summary collapse
- #call(output) ⇒ Object
- #each(&block) ⇒ Object
- #finish ⇒ Object
- #ignore_paths ⇒ Object
-
#initialize(root, coverage) ⇒ Config
constructor
A new instance of Config.
-
#make_policy(policy) ⇒ Object
Override this method to implement your own policy.
- #output ⇒ Object
- #policy ⇒ Object
- #report? ⇒ Boolean (also: #record?)
- #start ⇒ Object
Constructor Details
Instance Attribute Details
#coverage ⇒ Object (readonly)
Returns the value of attribute coverage.
54 55 56 |
# File 'lib/covered/config.rb', line 54 def coverage @coverage end |
Class Method Details
.coverage ⇒ Object
24 25 26 |
# File 'lib/covered/config.rb', line 24 def self.coverage ENV['COVERAGE'] end |
.load(root: self.root, coverage: self.coverage) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/covered/config.rb', line 28 def self.load(root: self.root, 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 |
.path(root) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/covered/config.rb', line 16 def self.path(root) path = ::File.(PATH, root) if ::File.exist?(path) return path end end |
.root ⇒ Object
12 13 14 |
# File 'lib/covered/config.rb', line 12 def self.root ENV['COVERED_ROOT'] || Dir.pwd end |
Instance Method Details
#call(output) ⇒ Object
82 83 84 |
# File 'lib/covered/config.rb', line 82 def call(output) policy.call(output) end |
#each(&block) ⇒ Object
86 87 88 |
# File 'lib/covered/config.rb', line 86 def each(&block) policy.each(&block) end |
#finish ⇒ Object
73 74 75 76 77 78 79 80 |
# File 'lib/covered/config.rb', line 73 def finish # Finish coverage tracking: policy.finish # Restore the environment: ENV.replace(@environment) @environment = nil end |
#ignore_paths ⇒ Object
90 91 92 |
# File 'lib/covered/config.rb', line 90 def ignore_paths ['test/', 'fixtures/', 'spec/', 'vendor/', 'config/'] end |
#make_policy(policy) ⇒ Object
Override this method to implement your own policy.
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/covered/config.rb', line 95 def make_policy(policy) # Only files in the root would be tracked: policy.root(@root) patterns = ignore_paths.map do |path| File.join(@root, path) end # 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") policy.persist! policy.reports!(@coverage) end |
#output ⇒ Object
60 61 62 |
# File 'lib/covered/config.rb', line 60 def output policy.output end |
#policy ⇒ Object
56 57 58 |
# File 'lib/covered/config.rb', line 56 def policy @policy ||= Policy.new.tap{|policy| make_policy(policy)}.freeze end |
#report? ⇒ Boolean Also known as: record?
48 49 50 |
# File 'lib/covered/config.rb', line 48 def report? !!@coverage end |
#start ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/covered/config.rb', line 64 def start # Save and setup the environment: @environment = ENV.to_h autostart! # Start coverage tracking: policy.start end |