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