def assign_from(obj, *fields)
force = false
case fields.last when true, false, nil
force = fields.pop
end
unless fields.empty?
fields.each do |k|
var = k.to_s
var = var.slice(0,1) == '@' ? var : "@#{var}"
if obj.instance_variables.include?(var)
self.instance_variable_set( var, obj.instance_variable_get(var) )
end
end
else
if force
fields = obj.instance_variables
else
fields = instance_variables | obj.instance_variables
end
fields.each do |var|
instance_variable_set( var, obj.instance_variable_get(var) )
end
end
return self
end