Module: Undercover::CLI
- Defined in:
- lib/undercover/cli.rb
Constant Summary collapse
- WARNINGS_TO_S =
TODO: Report calls >parser< for each file instead of traversing the whole project at first!
{ stale_coverage: Rainbow('🚨 WARNING: Coverage data is older than your ' \ 'latest changes and results might be incomplete. ' \ 'Re-run tests to update').yellow, no_changes: Rainbow('✅ No reportable changes').green }.freeze
Class Method Summary collapse
- .changeset(opts) ⇒ Object
- .handle_missing_coverage_path(opts) ⇒ Object
- .handle_missing_file(coverage_path) ⇒ Object
- .handle_report_validation(report, coverage_path) ⇒ Object
- .run(args) ⇒ Object
- .run_report(opts) ⇒ Object
- .syntax_version(version) ⇒ Object
Class Method Details
.changeset(opts) ⇒ Object
64 65 66 67 68 |
# File 'lib/undercover/cli.rb', line 64 def self.changeset(opts) git_dir = File.join(opts.path, opts.git_dir) filter_set = Undercover::FilterSet.new(opts.glob_allow_filters, opts.glob_reject_filters) Undercover::Changeset.new(git_dir, opts.compare, filter_set) end |
.handle_missing_coverage_path(opts) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/undercover/cli.rb', line 33 def self.handle_missing_coverage_path(opts) puts Rainbow('❌ ERROR: No coverage report found. Checked default paths:').red puts Rainbow(' - ./coverage/coverage.json (SimpleCov)').red puts Rainbow(" - ./coverage/lcov/#{Pathname.new(File.(opts.path)).split.last}.lcov (LCOV)").red puts Rainbow('Set a custom path with --lcov or --simplecov option').red 1 end |
.handle_missing_file(coverage_path) ⇒ Object
41 42 43 44 |
# File 'lib/undercover/cli.rb', line 41 def self.handle_missing_file(coverage_path) puts Rainbow("❌ ERROR: Coverage report not found at: #{coverage_path}").red 1 end |
.handle_report_validation(report, coverage_path) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/undercover/cli.rb', line 46 def self.handle_report_validation(report, coverage_path) error = report.validate(coverage_path) if error puts(WARNINGS_TO_S[error]) return 0 if error == :no_changes end flagged = report.flagged_results puts Undercover::Formatter.new(flagged) flagged.any? ? 1 : 0 end |
.run(args) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/undercover/cli.rb', line 17 def self.run(args) opts = Undercover::Options.new.parse(args) syntax_version(opts.syntax_version) run_report(opts) end |
.run_report(opts) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/undercover/cli.rb', line 24 def self.run_report(opts) coverage_path = opts.simplecov_resultset || opts.lcov return handle_missing_coverage_path(opts) if coverage_path.nil? return handle_missing_file(coverage_path) unless File.exist?(coverage_path) report = Undercover::Report.new(changeset(opts), opts).build handle_report_validation(report, coverage_path) end |
.syntax_version(version) ⇒ Object
58 59 60 61 62 |
# File 'lib/undercover/cli.rb', line 58 def self.syntax_version(version) return unless version Imagen.parser_version = version end |