def assign_with(*args)
if args[0].is_a?(Hash)
iv_val_pairs = args[0]
else
raise ArgumentError, "Hash required for assigning multiple variables" if args.length > 2
iv_val_pairs = { args[0] => args[1] }
end
iv_val_pairs.each_pair do |k,v|
if k.to_s.slice(0,2) == '@@'
self.instance_eval %Q{ #{k} = v }
else
case k.to_s.slice(0,1)
when '$'
self.instance_eval %Q{ #{k} = v }
when '@'
self.instance_variable_set( k, v )
@__atttributes__ |= k
else
self.instance_variable_set( "@#{k}", v )
@__atttributes__ |= "@#{k}"
end
end
end
end