Sha256: 25af442c6a2ad1ef450e945e3a0f5d7456ba7cb9aa64972e25c23a68e46b0f9b
Contents?: true
Size: 1.84 KB
Versions: 12
Compression:
Stored size: 1.84 KB
Contents
def qa_files files = case (ENV['MODE'] || '').to_sym when :full %x(git ls-files '*.rb') when :feat %x(git diff master...HEAD --name-only) else %x(git diff --name-only) end files.split("\n").map(&:chomp).select{ |file| file =~ /\.rb\z/ } end def qa_files_array @qa_files_array ||= qa_files end def qa_files_glob @qa_files_glob ||= "{#{qa_files_array.join(",")}}" end begin require 'cane/rake_task' namespace :qa do Cane::RakeTask.new(:cane) do |cane| cane.abc_max = 20 cane.abc_glob = qa_files_glob cane.add_threshold 'coverage/covered_percent', :>=, 75 cane.no_style = true cane.no_doc = true end end rescue LoadError end begin require 'reek/rake/task' namespace :qa do Reek::Rake::Task.new do |t| t.fail_on_error = false t.source_files = qa_files_glob end end rescue LoadError end begin require 'tailor/rake_task' namespace :qa do Tailor::RakeTask.new do |task| task.file_set qa_files_array do |style| style.max_line_length 0, level: :off end end end rescue LoadError end begin require 'rubocop/rake_task' namespace :qa do Rubocop::RakeTask.new(:rubocop) do |task| task.patterns = qa_files_array task.fail_on_error = false end end rescue LoadError end begin require 'rails_best_practices' namespace :qa do desc 'Run rails_best_practices' task :rails_best_practices do `rails_best_practices -o #{qa_files_array.join(',')}` end end rescue LoadError end desc 'Run all QA tasks' task :qa do if qa_files_array.any? Rake.application.in_namespace(:qa) do |namespace| namespace.tasks.each do |task| puts "\033[34m*** Running #{task.name}\033[0m" task.invoke end end else puts "\033[33mNo file changes identified, skipping QA tasks\033[0m" end end
Version data entries
12 entries across 12 versions & 1 rubygems