# File lib/puppet/util/provider_features.rb, line 52
52:   def feature(name, docs, hash = {})
53:     @features ||= {}
54:     raise(Puppet::DevError, "Feature #{name} is already defined") if @features.include?(name)
55:     begin
56:       obj = ProviderFeature.new(name, docs, hash)
57:       @features[obj.name] = obj
58:     rescue ArgumentError => detail
59:       error = ArgumentError.new(
60:         "Could not create feature #{name}: #{detail}"
61:       )
62:       error.set_backtrace(detail.backtrace)
63:       raise error
64:     end
65:   end