Internal: Various methods that orchestrate the actions of the puppet-lint check plugins.
Public: Initialise a new PuppetLint::Checks object.
# File lib/puppet-lint/checks.rb, line 10 def initialize @problems = [] end
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
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
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
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
Generated with the Darkfish Rdoc Generator 2.