Class: SimpleCov::ExitCodes::MinimumCoverageByGroupCheck
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb |
Class Method Summary
Instance Attribute Summary
- #failing? ⇒ Boolean readonly
- #minimum_coverage_by_group readonly private
- #result readonly private
Instance Method Summary
Constructor Details
.new(result, minimum_coverage_by_group) ⇒ MinimumCoverageByGroupCheck
# File 'lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb', line 6
def initialize(result, minimum_coverage_by_group) @result = result @minimum_coverage_by_group = minimum_coverage_by_group end
Instance Attribute Details
#failing? ⇒ Boolean (readonly)
[ GitHub ]
# File 'lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb', line 11
def failing? minimum_violations.any? end
#minimum_coverage_by_group (readonly, private)
[ GitHub ]# File 'lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb', line 33
attr_reader :result, :minimum_coverage_by_group
#result (readonly, private)
[ GitHub ]# File 'lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb', line 33
attr_reader :result, :minimum_coverage_by_group
Instance Method Details
#compute_minimum_coverage_data (private)
[ GitHub ]# File 'lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb', line 42
def compute_minimum_coverage_data minimum_coverage_by_group.flat_map do |group_name, minimum_group_coverage| group = find_group(group_name) next [] unless group minimum_group_coverage.map do |criterion, expected_percent| actual_coverage = group.coverage_statistics.fetch(criterion) minimum_coverage_hash(group_name, criterion, expected_percent, SimpleCov.round_coverage(actual_coverage.percent)) end end end
#exit_code
[ GitHub ]# File 'lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb', line 27
def exit_code SimpleCov::ExitCodes::MINIMUM_COVERAGE end
#find_group(group_name) (private)
[ GitHub ]#minimum_coverage_hash(group_name, criterion, minimum_expected, actual) (private)
[ GitHub ]# File 'lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb', line 61
def minimum_coverage_hash(group_name, criterion, minimum_expected, actual) { group_name: group_name, criterion: criterion, minimum_expected: minimum_expected, actual: actual } end
#minimum_violations (private)
[ GitHub ]# File 'lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb', line 35
def minimum_violations @minimum_violations ||= compute_minimum_coverage_data.select do |achieved| achieved.fetch(:actual) < achieved.fetch(:minimum_expected) end end
#report
[ GitHub ]# File 'lib/simplecov/exit_codes/minimum_coverage_by_group_check.rb', line 15
def report minimum_violations.each do |violation| $stderr.printf( "%<criterion>s coverage by group (%<covered>.2f%%) is below the expected minimum coverage (%<minimum_coverage>.2f%%) in %<group_name>s.\n", group_name: violation.fetch(:group_name), covered: SimpleCov.round_coverage(violation.fetch(:actual)), minimum_coverage: violation.fetch(:minimum_expected), criterion: violation.fetch(:criterion).capitalize ) end end