class Parsers::NativeFunction

Attributes

manifest_file[R]

Public Class Methods

load_function(file) click to toggle source

@param [String] - path to the function file @return [OpenStruct] - a object with name and parameters

# File lib/retrospec/plugins/v1/plugin/generators/parsers/native_function.rb, line 13
def self.load_function(file)
  f = new(file)
  @model = OpenStruct.new(:name => f.definition.name,
                          :parameters => f.parameter_list,
                          :parameter_names => f.parameter_list.keys)
  @model
end
new(file) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/parsers/native_function.rb, line 7
def initialize(file)
  @manifest_file = file
end

Public Instance Methods

ast() click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/parsers/native_function.rb, line 21
def ast
  unless @ast
    raise ArgumentError, 'please set the manifest file' if manifest_file.nil?
    parser = ::Puppet::Pops::Parser::EvaluatingParser.new
    result = parser.parse_file(manifest_file)
    @ast = result.current
  end
  @ast
end
body() click to toggle source

return a manifest body object

# File lib/retrospec/plugins/v1/plugin/generators/parsers/native_function.rb, line 40
def body
  ast.body.body
end
definition() click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/parsers/native_function.rb, line 35
def definition
  ast.body
end
dumper() click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/parsers/native_function.rb, line 31
def dumper
  @dumper ||= Retrospec::Puppet::RspecDumper.new
end
function_name() click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/parsers/native_function.rb, line 48
def function_name
  body.name
end
parameter_list() click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/parsers/native_function.rb, line 52
def parameter_list
  list = {}
  parameters.each { |p| list[p.name.to_sym] = p.value }
  list
end
parameters() click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/parsers/native_function.rb, line 44
def parameters
  ast.body.parameters
end