# File lib/rubyforge.rb, line 263
  def add_file(group_name, package_name, release_name, userfile)
    type_id      = @userconfig["type_id"]
    group_id     = lookup "group", group_name
    package_id   = lookup "package", package_name
    release_id   = (Integer === release_name) ? release_name : lookup("release", package_name)[release_name]
    url = "/releases/#{release_id}/files.js"

    userfile = open userfile, 'rb'

    type_id ||= userfile.path[%r|\.[^\./]+$|]
    type_id = (lookup "type", type_id rescue lookup "type", ".oth")

    processor_id = @userconfig["processor_id"]
    processor_id ||= "Any"
    processor_id = lookup "processor", processor_id

    form = {
      "file[filename]"      => File.basename(userfile.path),
      "file[processor_id]"  => processor_id,
      "file[type_id]"       => type_id,
      "contents"            => userfile.read
    }

    run url, form
  end