class Xcop::RakeTask

Rake task.

Attributes

excludes[RW]
fail_on_error[RW]
includes[RW]
license[RW]
name[RW]
quiet[RW]

Public Class Methods

new(*args) { |*[self, task_args].slice(0, arity)| ... } click to toggle source
# File lib/xcop/rake_task.rb, line 39
def initialize(*args, &task_block)
  @name = args.shift || :xcop
  @includes = %w[xml xsd xhtml xsl html].map { |e| "**/*.#{e}" }
  @excludes = []
  @license = nil
  @quiet = false
  desc 'Run Xcop' unless ::Rake.application.last_description
  task(name, *args) do |_, task_args|
    RakeFileUtils.send(:verbose, true) do
      yield(*[self, task_args].slice(0, task_block.arity)) if block_given?
      run
    end
  end
end

Private Instance Methods

pluralize(num, text) click to toggle source
# File lib/xcop/rake_task.rb, line 74
def pluralize(num, text)
  "#{num} #{num == 1 ? text : text + 's'}"
end
run() click to toggle source
# File lib/xcop/rake_task.rb, line 56
    def run
      require 'xcop'
      puts 'Running xcop...' unless @quiet
      bad = Dir.glob(@excludes)
      good = Dir.glob(@includes).reject { |f| bad.include?(f) }
      puts "Inspecting #{pluralize(good.length, 'file')}..." unless @quiet
      begin
        Xcop::CLI.new(good, @license.nil? ? '' : File.read(@license)).run do
          print Rainbow('.').green unless @quiet
        end
      rescue StandardError => e
        abort(e.message)
      end
      return if @quiet
      puts "\n#{pluralize(good.length, 'file')} checked, \
everything looks #{Rainbow('pretty').green}"
    end