summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
#---------------------------------------------------------------