diff options
| -rw-r--r-- | lib/blink/type.rb | 11 |
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 #--------------------------------------------------------------- |
