Module: PuppetStrings::Json

Defined in:
lib/puppet-strings/json.rb

Overview

The module for JSON related functionality.

Class Method Summary collapse

Class Method Details

.render(file = nil) ⇒ void

This method returns an undefined value.

Renders the current YARD registry as JSON to the given file (or STDOUT if nil).

Parameters:

  • file (String) (defaults to: nil)

    The path to the output file to render the registry to. If nil, output will be to STDOUT.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/puppet-strings/json.rb', line 8

def self.render(file = nil)
  document = {
    puppet_classes: YARD::Registry.all(:puppet_class).sort_by!(&:name).map!(&:to_hash),
    defined_types: YARD::Registry.all(:puppet_defined_type).sort_by!(&:name).map!(&:to_hash),
    resource_types: YARD::Registry.all(:puppet_type).sort_by!(&:name).map!(&:to_hash),
    providers: YARD::Registry.all(:puppet_provider).sort_by!(&:name).map!(&:to_hash),
    puppet_functions: YARD::Registry.all(:puppet_function).sort_by!(&:name).map!(&:to_hash),
    puppet_tasks: YARD::Registry.all(:puppet_task).sort_by!(&:name).map!(&:to_hash),
    puppet_plans: YARD::Registry.all(:puppet_plan).sort_by!(&:name).map!(&:to_hash)
    # TODO: Need Ruby documentation?
  }

  if file
    File.open(file, 'w') do |f|
      f.write(JSON.pretty_generate(document))
      f.write("\n")
    end
  else
    puts JSON.pretty_generate(document)
  end
end