diff options
author | Luke Kanies <luke@madstop.com> | 2005-07-10 04:48:10 +0000 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2005-07-10 04:48:10 +0000 |
commit | 2c1f6373802c3d1431cce7e750764b286b62c41c (patch) | |
tree | 3aab48ed2d14eeb4753568329f695d01215ae434 | |
parent | 05d59fd02ff55e1f74dc7bb16a240ede74cebbc1 (diff) | |
download | puppet-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
-rw-r--r-- | lib/puppet/type.rb | 34 |
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 #--------------------------------------------------------------- |