Parent

PuppetLint::Checks

Internal: Various methods that orchestrate the actions of the puppet-lint check plugins.

Attributes

problems[RW]

Public: Get an Array of problem Hashes.

Public Class Methods

new() click to toggle source

Public: Initialise a new PuppetLint::Checks object.

# File lib/puppet-lint/checks.rb, line 10
def initialize
  @problems = []
end

Public Instance Methods

enabled_checks() click to toggle source

Internal: Get a list of checks that have not been disabled.

Returns an Array of String check names.

# File lib/puppet-lint/checks.rb, line 77
def enabled_checks
  @enabled_checks ||= Proc.new do
    PuppetLint.configuration.checks.select { |check|
      PuppetLint.configuration.send("#{check}_enabled?")
    }
  end.call
end
load_data(path, content) click to toggle source

Internal: Tokenise the manifest code and prepare it for checking.

path - The path to the file as passed to puppet-lint as a String. content - The String manifest code to be checked.

Returns nothing.

# File lib/puppet-lint/checks.rb, line 20
def load_data(path, content)
  lexer = PuppetLint::Lexer.new
  PuppetLint::Data.path = path
  PuppetLint::Data.manifest_lines = content.split("\n")
  begin
    PuppetLint::Data.tokens = lexer.tokenise(content)
    PuppetLint::Data.parse_control_comments
  rescue PuppetLint::LexerError => e
    problems << {
      :kind     => :error,
      :check    => :syntax,
      :message  => 'Syntax error (try running `puppet parser validate <file>`)',
      :line     => e.line_no,
      :column   => e.column,
      :fullpath => PuppetLint::Data.fullpath,
      :path     => PuppetLint::Data.path,
      :filename => PuppetLint::Data.filename,
    }
    PuppetLint::Data.tokens = []
  end
end
manifest() click to toggle source

Internal: Render the fixed manifest.

Returns the manifest as a String.

# File lib/puppet-lint/checks.rb, line 88
def manifest
  PuppetLint::Data.tokens.map { |t| t.to_manifest }.join('')
end
run(fileinfo, data) click to toggle source

Internal: Run the lint checks over the manifest code.

fileinfo - A Hash containing the following:

:fullpath - The expanded path to the file as a String.
:filename - The name of the file as a String.
:path     - The original path to the file as passed to puppet-lint as
            a String.

data - The String manifest code to be checked.

Returns an Array of problem Hashes.

# File lib/puppet-lint/checks.rb, line 52
def run(fileinfo, data)
  load_data(fileinfo, data)

  checks_run = []
  enabled_checks.each do |check|
    klass = PuppetLint.configuration.check_object[check].new
    problems = klass.run

    if PuppetLint.configuration.fix
      checks_run << klass
    else
      @problems.concat(problems)
    end
  end

  checks_run.each do |check|
    @problems.concat(check.fix_problems)
  end

  @problems
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.