summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2005-07-10 04:48:10 +0000
committerLuke Kanies <luke@madstop.com>2005-07-10 04:48:10 +0000
commit2c1f6373802c3d1431cce7e750764b286b62c41c (patch)
tree3aab48ed2d14eeb4753568329f695d01215ae434 /lib/puppet
parent05d59fd02ff55e1f74dc7bb16a240ede74cebbc1 (diff)
downloadpuppet-2c1f6373802c3d1431cce7e750764b286b62c41c.tar.gz
puppet-2c1f6373802c3d1431cce7e750764b286b62c41c.tar.xz
puppet-2c1f6373802c3d1431cce7e750764b286b62c41c.zip
fixing some nasty bugs related to parameter checking
git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@348 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/type.rb34
1 files changed, 15 insertions, 19 deletions
diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb
index 03d042a20..eb3bc2e03 100644
--- a/lib/puppet/type.rb
+++ b/lib/puppet/type.rb
@@ -390,31 +390,27 @@ class Type < Puppet::Element
#---------------------------------------------------------------
#---------------------------------------------------------------
- def Type.validparam(name)
- self.validstate(name) or self.validparameter(name) or false
- end
- #---------------------------------------------------------------
-
- #---------------------------------------------------------------
# this abstracts accessing parameters and states, and normalizes
# access to always be symbols, not strings
def [](name)
- mname = name
if name.is_a?(String)
- mname = name.intern
- end
- unless self.class.validparam(name)
- raise "Invalid parameter %s" % [mname]
+ name = name.intern
end
- if @states.include?(mname)
- # if they're using [], they don't know if we're a state or a string
- # thus, return a string
- # if they want the actual state object, they should use state()
- return @states[mname].is
- elsif @parameters.include?(mname)
- return @parameters[mname]
+
+ if self.class.validstate(name)
+ if @states.include?(name)
+ return @states[name].is
+ else
+ return nil
+ end
+ elsif self.class.validparameter(name)
+ if @parameters.include?(name)
+ return @parameters[name]
+ else
+ return nil
+ end
else
- return nil
+ raise TypeError.new("Invalid parameter %s" % [name])
end
end
#---------------------------------------------------------------