class PuppetReadmeGenerator::Generator

Public Class Methods

new() click to toggle source
# File lib/puppet_readme_generator.rb, line 7
def initialize
  patterns ||= PuppetStrings::DEFAULT_SEARCH_PATTERNS
  options = {}
  options[:json] = 'documentation.json'
  PuppetStrings.generate(patterns, options)
end

Public Instance Methods

classes() click to toggle source
# File lib/puppet_readme_generator.rb, line 92
def classes
  if @classes.nil?
    @classes = documentation['puppet_classes'].map do |c|
      Class.new c
    end
  end
  @classes
end
defined_types() click to toggle source
# File lib/puppet_readme_generator.rb, line 101
def defined_types
  if @defined_types.nil?
    @defined_types = documentation['defined_types'].map do |c|
      DefinedType.new c
    end
  end
  @defined_types
end
documentation() click to toggle source
# File lib/puppet_readme_generator.rb, line 65
def documentation
  @documentation ||= JSON.parse(File.open(documentation_path).read)
end
documentation_path() click to toggle source
# File lib/puppet_readme_generator.rb, line 61
def documentation_path
  'documentation.json'
end
long_description() click to toggle source
# File lib/puppet_readme_generator.rb, line 81
def long_description
  metadata['long_description']
end
main_class() click to toggle source
# File lib/puppet_readme_generator.rb, line 85
def main_class
  classes.each do |c|
    return c if c.name == puppet_module
  end
  nil
end
markdown() click to toggle source
# File lib/puppet_readme_generator.rb, line 14
def markdown
  output = []
  output << "# #{puppet_module}\n"
  output << "#### Table of Contents\n"

  count = 1

  unless long_description.nil?
    output << "#{count}. [Description](#description)"
    count += 1
  end

  if classes.length > 0
    output << "#{count}. [Classes](#classes)"
    count += 1
  end

  if defined_types.length > 0
    output << "#{count}. [Defined Types](#defined-types)"
    count += 1
  end

  unless long_description.nil?
    output << '## Description'
    output << long_description
    output << ''
  end

  if classes.length > 0
    output << '## Classes'
    classes.each do |c|
      output << ''
      output << c.markdown
    end
  end

  if defined_types.length > 0
    output << '## DefinedTypes'
    defined_types.each do |dt|
      output << ''
      output << dt.markdown
    end
  end

  output.join("\n")
end
metadata() click to toggle source
# File lib/puppet_readme_generator.rb, line 73
def metadata
  @metadata ||= JSON.parse(File.open(metadata_path).read)
end
metadata_path() click to toggle source
# File lib/puppet_readme_generator.rb, line 69
def metadata_path
  'metadata.json'
end
puppet_module() click to toggle source
# File lib/puppet_readme_generator.rb, line 77
def puppet_module
  metadata['name'].split('-')[1]
end