Module: SimpleCov
- Defined in:
- lib/simplecov.rb,
lib/simplecov/filter.rb,
lib/simplecov/result.rb,
lib/simplecov/railtie.rb,
lib/simplecov/version.rb,
lib/simplecov/formatter.rb,
lib/simplecov/source_file.rb
Overview
Code coverage for ruby 1.9. Please check out README for a full introduction.
Defined Under Namespace
Modules: ArrayMergeHelper, CommandGuesser, Configuration, Formatter, HashMergeHelper, ResultMerger Classes: Adapters, BlockFilter, CoverageDataError, FileList, Filter, Railtie, Result, SourceFile, StringFilter
Constant Summary collapse
- VERSION =
"0.6.3"
Class Attribute Summary collapse
-
.running ⇒ Object
, :result # TODO: Remove result?.
Class Method Summary collapse
-
.filtered(files) ⇒ Object
Applies the configured filters to the given array of SimpleCov::SourceFile items.
-
.grouped(files) ⇒ Object
Applies the configured groups to the given array of SimpleCov::SourceFile items.
-
.load_adapter(name) ⇒ Object
Applies the adapter of given name on SimpleCov configuration.
-
.result ⇒ Object
Returns the result for the current coverage run, merging it across test suites from cache using SimpleCov::ResultMerger if use_merging is activated (default).
-
.start(adapter = nil, &block) ⇒ Object
Sets up SimpleCov to run against your project.
-
.usable? ⇒ Boolean
Checks whether we’re on a proper version of ruby (1.9+) and returns false if this is not the case, also printing an appropriate warning.
Class Attribute Details
.running ⇒ Object
, :result # TODO: Remove result?
9 10 11 |
# File 'lib/simplecov.rb', line 9 def running @running end |
Class Method Details
.filtered(files) ⇒ Object
Applies the configured filters to the given array of SimpleCov::SourceFile items
60 61 62 63 64 65 66 |
# File 'lib/simplecov.rb', line 60 def filtered(files) result = files.clone filters.each do |filter| result = result.reject {|source_file| filter.matches?(source_file) } end SimpleCov::FileList.new result end |
.grouped(files) ⇒ Object
Applies the configured groups to the given array of SimpleCov::SourceFile items
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/simplecov.rb', line 71 def grouped(files) grouped = {} grouped_files = [] groups.each do |name, filter| grouped[name] = SimpleCov::FileList.new(files.select {|source_file| filter.matches?(source_file)}) grouped_files += grouped[name] end if groups.length > 0 and (other_files = files.reject {|source_file| grouped_files.include?(source_file)}).length > 0 grouped["Ungrouped"] = SimpleCov::FileList.new(other_files) end grouped end |
.load_adapter(name) ⇒ Object
Applies the adapter of given name on SimpleCov configuration
87 88 89 |
# File 'lib/simplecov.rb', line 87 def load_adapter(name) adapters.load(name) end |
.result ⇒ Object
Returns the result for the current coverage run, merging it across test suites from cache using SimpleCov::ResultMerger if use_merging is activated (default)
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/simplecov.rb', line 43 def result @result ||= SimpleCov::Result.new(Coverage.result) if running # If we're using merging of results, store the current result # first, then merge the results and return those if use_merging SimpleCov::ResultMerger.store_result(@result) if @result return SimpleCov::ResultMerger.merged_result else return @result end ensure self.running = false end |
.start(adapter = nil, &block) ⇒ Object
Sets up SimpleCov to run against your project. You can optionally specify an adapter to use as well as configuration with a block:
SimpleCov.start
OR
SimpleCov.start 'rails' # using rails adapter
OR
SimpleCov.start do
add_filter 'test'
end
OR
SimpleCov.start 'rails' do
add_filter 'test'
end
Please check out the RDoc for SimpleCov::Configuration to find about available config options
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/simplecov.rb', line 28 def start(adapter=nil, &block) return false unless SimpleCov.usable? require 'coverage' load_adapter(adapter) unless adapter.nil? Coverage.start configure(&block) if block_given? @result = nil self.running = true end |
.usable? ⇒ Boolean
Checks whether we’re on a proper version of ruby (1.9+) and returns false if this is not the case, also printing an appropriate warning
95 96 97 98 99 100 101 |
# File 'lib/simplecov.rb', line 95 def usable? unless "1.9".respond_to?(:encoding) warn "WARNING: SimpleCov is activated, but you're not running Ruby 1.9+ - no coverage analysis will happen" return false end true end |