From: Robert Dober Date: 2008-05-28T22:06:02+09:00 Subject: Re: The duck's backside On Wed, May 28, 2008 at 9:45 AM, Tobias Weber wrote: > The first idea would be to do something like the following module MyChecker MyConstraintError = Class::new RuntimeError def make_ivar name, value, *allowedClasses raise MyConstraintError, "...." unless allowedClasses.any?{ |klass| klass === value } instance_variable_set name, value end end class MyClass include MyChecker def initialize int_val, str_val, val make_ivar :@int, int_val, Integer make_ivar :@str, str_val, String make_ivar :@var, val, Integer, String .... HTH Robert -- http://ruby-smalltalk.blogspot.com/ --- Whereof one cannot speak, thereof one must be silent. Ludwig Wittgenstein