# File lib/puppet/external/nagios/base.rb, line 90
 90:   def self.newtype(name, &block)
 91:     name = name.intern if name.is_a? String
 92: 
 93:     @types ||= {}
 94: 
 95:     # Create the class, with the correct name.
 96:     t = Class.new(self)
 97:     t.name = name
 98: 
 99:     # Everyone gets this.  There should probably be a better way, and I
100:     # should probably hack the attribute system to look things up based on
101:     # this "use" setting, but, eh.
102:     t.parameters = [:use]
103: 
104:     const_set(name.to_s.capitalize,t)
105: 
106:     # Evaluate the passed block.  This should usually define all of the work.
107:     t.class_eval(&block)
108: 
109:     @types[name] = t
110:   end