4 # remove some methods that might clash with commonly
5 # used return data to improve the effectiveness of the
6 # method_missing lookup strategy
7 undef :type if method_defined?(:type)
14 @data.include?(key.to_sym)
22 raise "Can only store String, Integer, Float or Boolean data but got #{val.class} for key #{key}" unless [String, Fixnum, Bignum, Float, TrueClass, FalseClass].include?(val.class)
24 @data[key.to_sym] = val
31 def method_missing(method, *args)
34 raise NoMethodError, "undefined local variable or method `%s'" % key unless include?(key)