class Quality::Rake::Task

A Rake task that run quality tools on a set of source files, and enforce a ratcheting quality level.

Example:

require 'quality/rake/task'

Quality::Rake::Task.new do |t|
end

This will create a task that can be run with:

rake quality

Attributes

config[R]
globber[R]

Public Class Methods

new(dsl: ::Rake::Task, cmd_runner: Kernel, count_file: File, count_io: IO, gem_spec: Gem::Specification, quality_checker_class: Quality::QualityChecker, which: Which.new, config: Quality::Config.new) { |config| ... } click to toggle source

Defines a new task, using the name name.

# File lib/quality/rake/task.rb, line 44
def initialize(dsl: ::Rake::Task,
               cmd_runner: Kernel,
               count_file: File,
               count_io: IO,
               gem_spec: Gem::Specification,
               quality_checker_class:
                 Quality::QualityChecker,
               which: Which.new,
               config: Quality::Config.new)
  @dsl = dsl
  @cmd_runner = cmd_runner
  @config = config
  yield @config if block_given?
  @runner = Quality::Runner.new(@config,
                                gem_spec: gem_spec,
                                quality_checker_class:
                                  quality_checker_class,
                                count_io: count_io,
                                count_file: count_file,
                                globber: globber,
                                which: which)
  define
end

Private Instance Methods

define() click to toggle source
# File lib/quality/rake/task.rb, line 80
def define
  unless ::Rake.application.last_description
    desc 'Verify quality has increased or stayed ' \
         'the same'
  end
  @dsl.define_task(quality_name) { @runner.run_quality }
  @dsl.define_task(ratchet_name) { @runner.run_ratchet }
  @runner.tools.each do |tool_name, tool_exe, clazz|
    @dsl.define_task(tool_name) do
      @runner.run_quality_with_tool(tool_name, tool_exe, clazz)
    end
  end
end
quality_name() click to toggle source
# File lib/quality/rake/task.rb, line 72
def quality_name
  config.quality_name
end
ratchet_name() click to toggle source
# File lib/quality/rake/task.rb, line 76
def ratchet_name
  config.ratchet_name
end