From: Tom Sawyer Date: 2003-01-06T10:30:54+09:00 Subject: attr_cast, one a small step for interface techniques another addition to tomslib/rubylib: class Module def attr_cast(names_cast) names_cast.each { |name, cast| class_eval <<-EOS def #{name} @#{name} end def #{name}=(arg) @#{name} = arg.#{cast} end EOS } end end try it out: attr_cast :avar => :to_s will create: def avar @avar end def avar=(arg) @avar=arg.to_s end enjoy, -transami