Class: Tailor::RakeTask

Inherits:
Rake::TaskLib
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/tailor/rake_task.rb

Overview

This class lets you define Rake tasks to drive tailor. Specifying options is similar to specifying options in a configuration file.

Examples:

Use Tailor CLI Options

Tailor::RakeTask.new do |task|
  task.tailor_opts = %w(--no-color --max-line-length=100)
end

A task specifically for features

Tailor::RakeTask.new(:tailor_features) do |task|
  task.file_set 'features/**/*.rb', :features do |style|
    style.max_line_length 100, level: :warn
    style.trailing_newlines 2
  end
end

Use and override a configuration file

Tailor::RakeTask.new do |task|
  task.config_file = 'hardcore_stylin.rb'
  task.file_set 'lib/**/*.rb' do |style|
    style.indentation_spaces 2, level: :warn
  end
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = "tailor", desc = "Check style") {|_self| ... } ⇒ RakeTask

Returns a new instance of RakeTask.

Parameters:

  • name (String) (defaults to: "tailor")

    The task name.

  • desc (String) (defaults to: "Check style")

    Description of the task.

Yields:

  • (_self)

Yield Parameters:



57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/tailor/rake_task.rb', line 57

def initialize(name = "tailor", desc = "Check style")
  Tailor::Logger.log = false

  @name, @desc = name, desc
  @tailor_opts = []
  @file_sets = []
  @recursive_file_sets = []

  yield self if block_given?

  define_task
end

Instance Attribute Details

#config_fileString

Use a specific configuration file. If you have a .tailor file, your RakeTask will automatically use that.

Returns:

  • (String)

    The path to the configuration file.



47
48
49
# File 'lib/tailor/rake_task.rb', line 47

def config_file
  @config_file
end

#formattersObject

Returns the value of attribute formatters.



53
54
55
# File 'lib/tailor/rake_task.rb', line 53

def formatters
  @formatters
end

#tailor_optsObject

Specify any extra options (CLI options). These will override any options set in your config file.



51
52
53
# File 'lib/tailor/rake_task.rb', line 51

def tailor_opts
  @tailor_opts
end

Instance Method Details

#file_set(file_expression, label = :default, &block) ⇒ Object

Add a file set to critique, just like you would in a config file.

Parameters:

  • file_expression (String)
  • label (Symbol) (defaults to: :default)


74
75
76
# File 'lib/tailor/rake_task.rb', line 74

def file_set(file_expression, label=:default, &block)
  @file_sets << [file_expression, label, block]
end

#recursive_file_set(file_expression, label = :default, &block) ⇒ Object

Add a recursive file set to critique, just like you would in a config file.

Parameters:

  • file_expression (String)
  • label (Symbol) (defaults to: :default)


83
84
85
# File 'lib/tailor/rake_task.rb', line 83

def recursive_file_set(file_expression, label=:default, &block)
  @recursive_file_sets << [file_expression, label, block]
end