81: def initialize(type, name, options = {})
82: @type = type.to_s.downcase.to_sym
83: raise ArgumentError, "Invalid resource supertype '#{type}'" unless RESOURCE_SUPERTYPES.include?(@type)
84:
85: name = convert_from_ast(name) if name.is_a?(Puppet::Parser::AST::HostName)
86:
87: set_name_and_namespace(name)
88:
89: [:code, :doc, :line, :file, :parent].each do |param|
90: next unless value = options[param]
91: send(param.to_s + "=", value)
92: end
93:
94: set_arguments(options[:arguments])
95: end