# File lib/puppet/type.rb, line 232
232:     def self.newparam(name, options = {}, &block)
233:         options[:attributes] ||= {}
234:         param = genclass(name,
235:             :parent => options[:parent] || Puppet::Parameter,
236:             :attributes => options[:attributes],
237:             :block => block,
238:             :prefix => "Parameter",
239:             :array => @parameters,
240:             :hash => @paramhash
241:         )
242: 
243:         handle_param_options(name, options)
244: 
245:         # Grr.
246:         if options[:required_features]
247:             param.required_features = options[:required_features]
248:         end
249: 
250:         param.isnamevar if options[:namevar]
251: 
252:         if param.isnamevar?
253:             @namevar = param.name
254:         end
255: 
256:         return param
257:     end