ileitch/modis

View on GitHub
lib/tasks/quality.rake

Summary

Maintainability
Test Coverage
# frozen_string_literal: true

begin
  if ENV['CI']
    namespace :spec do
      task cane: ['spec']
    end
  else
    require 'cane/rake_task'

    desc 'Run cane to check quality metrics'
    Cane::RakeTask.new(:cane_quality) do |cane|
      cane.add_threshold 'coverage/covered_percent', :>=, 99
      cane.no_style = false
      cane.style_measure = 1000
      cane.no_doc = true
      cane.abc_max = 25
    end

    namespace :spec do
      task cane: %w[spec cane_quality]
    end
  end
rescue LoadError
  warn "cane not available."

  namespace :spec do
    task cane: ['spec']
  end
end

begin
  require 'rubocop/rake_task'
  t = RuboCop::RakeTask.new
  t.options << '-D'
rescue LoadError
  warn 'rubocop not available.'
  task rubocop: ['spec']
end

namespace :spec do
  task quality: %w[cane rubocop]
end