Module: DeepCover::Base
- Included in:
- DeepCover
- Defined in:
- lib/deep_cover/base.rb
Instance Method Summary collapse
- #autoload_tracker ⇒ Object
- #config_changed(what) ⇒ Object
- #cover ⇒ Object
- #coverage ⇒ Object
- #covered_code(filename) ⇒ Object
- #custom_requirer ⇒ Object
- #handle_relative_filename(filename) ⇒ Object
- #line_coverage(filename) ⇒ Object
- #parser ⇒ Object
- #start ⇒ Object
- #stop ⇒ Object
Instance Method Details
#autoload_tracker ⇒ Object
55 56 57 |
# File 'lib/deep_cover/base.rb', line 55 def autoload_tracker @autoload_tracker ||= AutoloadTracker.new end |
#config_changed(what) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/deep_cover/base.rb', line 40 def config_changed(what) if what == :paths warn "Changing DeepCover's paths after starting coverage is highly discouraged" if @started @custom_requirer = nil end end |
#cover ⇒ Object
33 34 35 36 37 38 |
# File 'lib/deep_cover/base.rb', line 33 def cover start yield ensure stop end |
#coverage ⇒ Object
47 48 49 |
# File 'lib/deep_cover/base.rb', line 47 def coverage @coverage ||= Coverage.new end |
#covered_code(filename) ⇒ Object
29 30 31 |
# File 'lib/deep_cover/base.rb', line 29 def covered_code(filename) coverage.covered_code(handle_relative_filename(filename)) end |
#custom_requirer ⇒ Object
51 52 53 |
# File 'lib/deep_cover/base.rb', line 51 def custom_requirer @custom_requirer ||= CustomRequirer.new(lookup_paths: config.paths) end |
#handle_relative_filename(filename) ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/deep_cover/base.rb', line 59 def handle_relative_filename(filename) unless Pathname.new(filename).absolute? relative_to = File.dirname(caller(2..2).first.partition(/\.rb:\d/).first) filename = File.absolute_path(filename, relative_to) end filename += '.rb' unless filename =~ /\.rb$/ filename end |
#line_coverage(filename) ⇒ Object
25 26 27 |
# File 'lib/deep_cover/base.rb', line 25 def line_coverage(filename) coverage.line_coverage(handle_relative_filename(filename), **config) end |
#parser ⇒ Object
68 69 70 71 72 73 |
# File 'lib/deep_cover/base.rb', line 68 def parser Parser::CurrentRuby.new.tap do |parser| parser.diagnostics.all_errors_are_fatal = true parser.diagnostics.ignore_warnings = true end end |
#start ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/deep_cover/base.rb', line 5 def start return if @started if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby' # No issues with autoload in jruby, so no need to override it! else require_relative 'core_ext/autoload_overrides' AutoloadOverride.active = true autoload_tracker.initialize_autoloaded_paths end require_relative 'core_ext/require_overrides' RequireOverride.active = true @started = true end |
#stop ⇒ Object
19 20 21 22 23 |
# File 'lib/deep_cover/base.rb', line 19 def stop AutoloadOverride.active = false if defined? AutoloadOverride RequireOverride.active = false @started = false end |