summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2005-06-13 22:14:48 +0000
committerLuke Kanies <luke@madstop.com>2005-06-13 22:14:48 +0000
commit65c2a6980da355f678b4b579e1ad28e38d51872a (patch)
treecd8b8ce91d1e51a673fcbb94427762f944c53b1b
parent500a1358c76e48dfab59fc983a1a6b03e82e14a6 (diff)
downloadpuppet-65c2a6980da355f678b4b579e1ad28e38d51872a.tar.gz
puppet-65c2a6980da355f678b4b579e1ad28e38d51872a.tar.xz
puppet-65c2a6980da355f678b4b579e1ad28e38d51872a.zip
adding validparam() to Blink::Type
git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@299 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r--lib/blink/type.rb11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/blink/type.rb b/lib/blink/type.rb
index da99aeb45..51cd904e7 100644
--- a/lib/blink/type.rb
+++ b/lib/blink/type.rb
@@ -380,6 +380,12 @@ class Type < Blink::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)
@@ -387,6 +393,9 @@ class Type < Blink::Element
if name.is_a?(String)
mname = name.intern
end
+ unless self.class.validparam(name)
+ raise "Invalid parameter %s" % [mname]
+ 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
@@ -395,7 +404,7 @@ class Type < Blink::Element
elsif @parameters.include?(mname)
return @parameters[mname]
else
- raise "Invalid parameter %s%s" % [mname]
+ return nil
end
end
#---------------------------------------------------------------