class PuppetX::PuppetLabs::Strings::Pops::YARDTransformer

Loosely based on the TreeDumper classes in Pops::Model. The responsibility of this class is to walk a Pops::Model and output objects that can be consumed by YARD handlers.

@note Currently, this class only extracts node, host class and type

definitions.

Public Class Methods

new() click to toggle source
# File lib/puppet_x/puppetlabs/strings/pops/yard_transformer.rb, line 8
def initialize
  @transform_visitor = Puppet::Pops::Visitor.new(self, 'transform')
end

Public Instance Methods

transform(o) click to toggle source
# File lib/puppet_x/puppetlabs/strings/pops/yard_transformer.rb, line 12
def transform(o)
  @transform_visitor.visit(o)
end

Private Instance Methods

transform_Factory(o) click to toggle source
# File lib/puppet_x/puppetlabs/strings/pops/yard_transformer.rb, line 18
def transform_Factory(o)
  transform(o.current)
end
transform_NamedDefinition(o) click to toggle source

Extract comments from type definitions and class definitions. Wrap them into YARDStatement objects that provide an interface for YARD handlers.

# File lib/puppet_x/puppetlabs/strings/pops/yard_transformer.rb, line 28
def transform_NamedDefinition(o)
  obj = PuppetX::PuppetLabs::Strings::Pops::YARDStatement.new(o)
  obj.parameters = o.parameters.map do |p|
    param_tuple = [transform(p)]
    param_tuple << ( p.value.nil? ? nil : transform(p.value) )
  end

  obj
end
transform_NilClass(o) click to toggle source

nil in… nil out!

# File lib/puppet_x/puppetlabs/strings/pops/yard_transformer.rb, line 44
def transform_NilClass(o)
  nil
end
transform_Positioned(o) click to toggle source

Catch-all visitor.

# File lib/puppet_x/puppetlabs/strings/pops/yard_transformer.rb, line 39
def transform_Positioned(o)
  PuppetX::PuppetLabs::Strings::Pops::YARDStatement.new(o)
end
transform_Program(o) click to toggle source
# File lib/puppet_x/puppetlabs/strings/pops/yard_transformer.rb, line 22
def transform_Program(o)
  o.definitions.map{|d| transform(d)}
end