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