class RubyLint::RakeTask

Class for easily creating Rake tasks without having to shell out to the commandline executable.

Basic usage:

require 'ruby-lint/rake_task'

RubyLint::RakeTask.new do |task|
  task.name  = 'lint'
  task.files = ['lib/my-project-name']
end

@!attribute [rw] name

@return [String] The name of the task.

@!attribute [rw] description

@return [String] The description of the task.

@!attribute [rw] debug

@return [TrueClass|FalseClass] Enables/disables debugging mode.

@!attribute [rw] files

@return [Array] The files to check.

@!attribute [rw] configuration

@return [String] Path to the configuration file to use.

Attributes

configuration[RW]
debug[RW]
description[RW]
files[RW]
name[RW]

Public Class Methods

new(options = {}) { |self| ... } click to toggle source

@param [Hash] options

# File lib/ruby-lint/rake_task.rb, line 39
def initialize(options = {})
  @name        = 'lint'
  @description = 'Check source code using ruby-lint'

  options.each do |key, value|
    instance_variable_set("@#{key}", value) if respond_to?(key)
  end

  yield self if block_given?

  desc(description)
  task(name) do
    validate!
    run_task
  end
end

Public Instance Methods

create_configuration() click to toggle source

@return [RubyLint::Configuration]

# File lib/ruby-lint/rake_task.rb, line 85
def create_configuration
  config_files = RubyLint::Configuration.configuration_files

  if configuration
    config_files = [configuration]
  end

  config       = RubyLint::Configuration.load_from_file(config_files)
  config.debug = debug

  return config
end
run_task() click to toggle source

Processes a list of files and writes the output to STDOUT.

# File lib/ruby-lint/rake_task.rb, line 73
def run_task
  config = create_configuration
  runner = RubyLint::Runner.new(config)
  list   = FileList.new
  output = runner.analyze(list.process(files))

  puts(output) unless output.empty?
end
validate!() click to toggle source

Checks if the task is configured properly, exists with code 1 if this isn't the case.

# File lib/ruby-lint/rake_task.rb, line 60
def validate!
  if configuration and !File.file?(configuration)
    abort "The configuration file #{configuration} does not exist"
  end

  if files.empty?
    abort 'No files to check were specified'
  end
end