class RubyCritic::RakeTask
end
task.paths = FileList[‘lib/*/.rb’, ‘spec/*/.rb’]
RubyCritic::RakeTask.new do |task|
require ‘rubycritic/rake_task’
Example:
rake rubycritic
This will create a task that can be run with:
A rake task that runs RubyCritic on a set of source files.
def define_task
def define_task desc description task(name) { run_task } end
def initialize(name = :rubycritic, description = 'Run RubyCritic')
def initialize(name = :rubycritic, description = 'Run RubyCritic') @name = name @description = description @paths = FileList['.'] @options = '' @verbose = false @fail_on_error = true yield self if block_given? define_task end
def options_as_arguments
def options_as_arguments options.split(/\s+/) end
def print_starting_up_output
def print_starting_up_output puts "\n\n!!! Running `#{name}` rake command\n" puts "!!! Inspecting #{paths} #{"with options #{options}" unless options.empty?}\n\n" end
def run_task
def run_task print_starting_up_output if verbose application = RubyCritic::Cli::Application.new(options_as_arguments + paths) return unless application.execute.nonzero? && fail_on_error abort('RubyCritic did not pass - exiting!') end