Class: PuppetDocLint::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet-doc-lint/runner.rb

Instance Method Summary collapse

Instance Method Details

#run(files) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/puppet-doc-lint/runner.rb', line 3

def run(files)
  runner_results = []
  files.each do |file|
    puppet_file_result = Result.new 
    Puppet.initialize_settings unless Puppet.settings.app_defaults_initialized?
    content          = PuppetDocLint::Parser.new(file)
    next if content.instance_variable_get('@object').nil?
    parameters = (defined? content.parameters) ? content.parameters.paramflat : nil
    puppet_file_result.class_name = content.klass
    puppet_file_result.no_documentation = true if content.docs == {} && content.authors == []
    result           = {
      content.klass  => {
        'parameters' => parameters,
        'docs'       => content.docs
      }
    }
    puppet_file_result.file_name = file
    puppet_file_result.parameters = parameters.keys
    
    undocumented = parameters.keys - content.docs.keys
    documented = parameters.keys - undocumented
    documented_parameter_no_assignment = content.docs.keys - parameters.keys

    puppet_file_result.documented_parameters = documented unless documented.empty?
    puppet_file_result.undocumented_parameters = undocumented unless undocumented.empty?
    puppet_file_result.documented_parameter_no_assignment = documented_parameter_no_assignment unless documented_parameter_no_assignment.empty?
    puppet_file_result.authors = content.authors
    
    runner_results << puppet_file_result        
  end
  runner_results
end