# File lib/facet/object/assign_with.rb, line 19
  def assign_with(*args)
    if args[0].is_a?(Hash) #or args[0].is_a?(Array)
      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}"
          #self.send( "#{k}=", v ) #if respond_to?("#{k}=")
        end
      end
    end
  end