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.



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

def self.render(file = nil)
  document = {
    puppet_classes: YARD::Registry.all(:puppet_class).sort_by!(&:name).map!(&:to_hash),
    data_types: YARD::Registry.all(:puppet_data_type).sort_by!(&:name).map!(&:to_hash),
    data_type_aliases: YARD::Registry.all(:puppet_data_type_alias).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