Permalink
Browse files

[dist refactor] Update to use `mime` and `pkginfo` modules.

  • Loading branch information...
indexzero committed Aug 19, 2011
1 parent df24e8b commit 061d9ac4bc8b2d088df14586864a182072a6a5cc
Showing with 18 additions and 258 deletions.
  1. +10 −7 lib/cloudfiles.js
  2. +6 −2 lib/cloudfiles/core.js
  3. +0 −207 lib/cloudfiles/mime.js
  4. +2 −1 package.json
  5. +0 −41 test/mime-test.js
View
@@ -10,17 +10,20 @@ require.paths.unshift(__dirname);
var cloudfiles = exports;
-// Version
-cloudfiles.version = [0, 2, 0];
+//
+// Load package information using `pkginfo`.
+//
+require('pkginfo')(module, 'version');
+//
// Resources
+//
cloudfiles.Config = require('cloudfiles/config').Config;
+cloudfiles.Cloudfiles = require('cloudfiles/core').Cloudfiles;
cloudfiles.Container = require('cloudfiles/container').Container;
cloudfiles.StorageObject = require('cloudfiles/storage-object').StorageObject;
+//
// Core methods
-cloudfiles.createClient = require('cloudfiles/core').createClient;
-cloudfiles.Cloudfiles = require('cloudfiles/core').Cloudfiles;
-
-// Mime types
-cloudfiles.mime = require('cloudfiles/mime').mime;
+//
+cloudfiles.createClient = require('cloudfiles/core').createClient;
View
@@ -11,6 +11,7 @@ var http = require('http'),
path = require('path'),
url = require('url'),
async = require('async'),
+ mime = require('mime'),
request = require('request'),
cloudfiles = require('../cloudfiles'),
config = require('./config'),
@@ -364,10 +365,13 @@ Cloudfiles.prototype.addFile = function (container, options, callback) {
client: this,
upload: lstream,
uri: this.storageUrl(container, options.remote),
- contentType: cloudfiles.mime.type(options.remote),
- headers: options.headers
+ headers: options.headers || {}
};
+ if (options.headers && !options.headers['content-type']) {
+ options.headers['content-type'] = mime.lookup(options.remote);
+ }
+
return common.rackspace(addOptions, callback, function (body, res) {
callback(null, true);
});
View
@@ -1,207 +0,0 @@
-/*
- * mime.js: Utility module for determining file mime-types
- *
- * (C) 2010 Nodejitsu Inc.
- * MIT LICENSE
- *
- */
-
-var defaultMime = exports.defaultMime = 'text/plain';
-
-exports.mime = {
-
- /**
- * Return mime type for the given path,
- * otherwise default to exports.defaultMime
- * ("application/octet-stream").
- *
- * @param {String} path
- * @return {String}
- * @api public
- */
-
- type: function getMime(path) {
- var index = String(path).lastIndexOf(".");
- if (index < 0) {
- return defaultMime;
- }
- var type = exports.mime.types[path.substring(index).toLowerCase()] || defaultMime;
- return (/(text|javascript)/).test(type) ? type + "; charset=utf-8" : type;
- },
-
- /**
- * Mime types.
- */
-
- types: {
- ".3gp" : "video/3gpp",
- ".a" : "application/octet-stream",
- ".ai" : "application/postscript",
- ".aif" : "audio/x-aiff",
- ".aiff" : "audio/x-aiff",
- ".asc" : "application/pgp-signature",
- ".asf" : "video/x-ms-asf",
- ".asm" : "text/x-asm",
- ".asx" : "video/x-ms-asf",
- ".atom" : "application/atom+xml",
- ".au" : "audio/basic",
- ".avi" : "video/x-msvideo",
- ".bat" : "application/x-msdownload",
- ".bin" : "application/octet-stream",
- ".bmp" : "image/bmp",
- ".bz2" : "application/x-bzip2",
- ".c" : "text/x-c",
- ".cab" : "application/vnd.ms-cab-compressed",
- ".cc" : "text/x-c",
- ".chm" : "application/vnd.ms-htmlhelp",
- ".class" : "application/octet-stream",
- ".com" : "application/x-msdownload",
- ".conf" : "text/plain",
- ".cpp" : "text/x-c",
- ".crt" : "application/x-x509-ca-cert",
- ".css" : "text/css",
- ".csv" : "text/csv",
- ".cxx" : "text/x-c",
- ".deb" : "application/x-debian-package",
- ".der" : "application/x-x509-ca-cert",
- ".diff" : "text/x-diff",
- ".djv" : "image/vnd.djvu",
- ".djvu" : "image/vnd.djvu",
- ".dll" : "application/x-msdownload",
- ".dmg" : "application/octet-stream",
- ".doc" : "application/msword",
- ".dot" : "application/msword",
- ".dtd" : "application/xml-dtd",
- ".dvi" : "application/x-dvi",
- ".ear" : "application/java-archive",
- ".eml" : "message/rfc822",
- ".eot" : "application/vnd.bw-fontobject",
- ".eps" : "application/postscript",
- ".exe" : "application/x-msdownload",
- ".f" : "text/x-fortran",
- ".f77" : "text/x-fortran",
- ".f90" : "text/x-fortran",
- ".flv" : "video/x-flv",
- ".for" : "text/x-fortran",
- ".gem" : "application/octet-stream",
- ".gemspec" : "text/x-script.ruby",
- ".gif" : "image/gif",
- ".gz" : "application/x-gzip",
- ".h" : "text/x-c",
- ".hh" : "text/x-c",
- ".htm" : "text/html",
- ".html" : "text/html",
- ".ico" : "image/vnd.microsoft.icon",
- ".ics" : "text/calendar",
- ".ifb" : "text/calendar",
- ".iso" : "application/octet-stream",
- ".jar" : "application/java-archive",
- ".java" : "text/x-java-source",
- ".jnlp" : "application/x-java-jnlp-file",
- ".jpeg" : "image/jpeg",
- ".jpg" : "image/jpeg",
- ".js" : "application/javascript",
- ".json" : "application/json",
- ".log" : "text/plain",
- ".m3u" : "audio/x-mpegurl",
- ".m4v" : "video/mp4",
- ".man" : "text/troff",
- ".mathml" : "application/mathml+xml",
- ".mbox" : "application/mbox",
- ".mdoc" : "text/troff",
- ".me" : "text/troff",
- ".mid" : "audio/midi",
- ".midi" : "audio/midi",
- ".mime" : "message/rfc822",
- ".mml" : "application/mathml+xml",
- ".mng" : "video/x-mng",
- ".mov" : "video/quicktime",
- ".mp3" : "audio/mpeg",
- ".mp4" : "video/mp4",
- ".mp4v" : "video/mp4",
- ".mpeg" : "video/mpeg",
- ".mpg" : "video/mpeg",
- ".ms" : "text/troff",
- ".msi" : "application/x-msdownload",
- ".odp" : "application/vnd.oasis.opendocument.presentation",
- ".ods" : "application/vnd.oasis.opendocument.spreadsheet",
- ".odt" : "application/vnd.oasis.opendocument.text",
- ".ogg" : "application/ogg",
- ".p" : "text/x-pascal",
- ".pas" : "text/x-pascal",
- ".pbm" : "image/x-portable-bitmap",
- ".pdf" : "application/pdf",
- ".pem" : "application/x-x509-ca-cert",
- ".pgm" : "image/x-portable-graymap",
- ".pgp" : "application/pgp-encrypted",
- ".pkg" : "application/octet-stream",
- ".pl" : "text/x-script.perl",
- ".pm" : "text/x-script.perl-module",
- ".png" : "image/png",
- ".pnm" : "image/x-portable-anymap",
- ".ppm" : "image/x-portable-pixmap",
- ".pps" : "application/vnd.ms-powerpoint",
- ".ppt" : "application/vnd.ms-powerpoint",
- ".ps" : "application/postscript",
- ".psd" : "image/vnd.adobe.photoshop",
- ".py" : "text/x-script.python",
- ".qt" : "video/quicktime",
- ".ra" : "audio/x-pn-realaudio",
- ".rake" : "text/x-script.ruby",
- ".ram" : "audio/x-pn-realaudio",
- ".rar" : "application/x-rar-compressed",
- ".rb" : "text/x-script.ruby",
- ".rdf" : "application/rdf+xml",
- ".roff" : "text/troff",
- ".rpm" : "application/x-redhat-package-manager",
- ".rss" : "application/rss+xml",
- ".rtf" : "application/rtf",
- ".ru" : "text/x-script.ruby",
- ".s" : "text/x-asm",
- ".sgm" : "text/sgml",
- ".sgml" : "text/sgml",
- ".sh" : "application/x-sh",
- ".sig" : "application/pgp-signature",
- ".snd" : "audio/basic",
- ".so" : "application/octet-stream",
- ".svg" : "image/svg+xml",
- ".svgz" : "image/svg+xml",
- ".swf" : "application/x-shockwave-flash",
- ".t" : "text/troff",
- ".tar" : "application/x-tar",
- ".tbz" : "application/x-bzip-compressed-tar",
- ".tci" : "application/x-topcloud",
- ".tcl" : "application/x-tcl",
- ".tex" : "application/x-tex",
- ".texi" : "application/x-texinfo",
- ".texinfo" : "application/x-texinfo",
- ".text" : "text/plain",
- ".tif" : "image/tiff",
- ".tiff" : "image/tiff",
- ".torrent" : "application/x-bittorrent",
- ".tr" : "text/troff",
- ".ttf" : "application/x-font-ttf",
- ".txt" : "text/plain",
- ".vcf" : "text/x-vcard",
- ".vcs" : "text/x-vcalendar",
- ".vrml" : "model/vrml",
- ".war" : "application/java-archive",
- ".wav" : "audio/x-wav",
- ".wma" : "audio/x-ms-wma",
- ".wmv" : "video/x-ms-wmv",
- ".wmx" : "video/x-ms-wmx",
- ".woff" : "font/woff",
- ".wrl" : "model/vrml",
- ".wsdl" : "application/wsdl+xml",
- ".xbm" : "image/x-xbitmap",
- ".xhtml" : "application/xhtml+xml",
- ".xls" : "application/vnd.ms-excel",
- ".xml" : "application/xml",
- ".xpm" : "image/x-xpixmap",
- ".xsl" : "application/xml",
- ".xslt" : "application/xslt+xml",
- ".yaml" : "text/yaml",
- ".yml" : "text/yaml",
- ".zip" : "application/zip"
- }
-};
View
@@ -13,7 +13,8 @@
"keywords": ["cloud computing", "api", "rackspace cloud", "cloudfiles"],
"dependencies": {
"async": "0.1.x",
- "mkdir": "0.0.x",
+ "mime": "1.2.x",
+ "pkginfo": "0.2.x",
"request": "2.0.x"
},
"devDependencies": {
View
@@ -1,41 +0,0 @@
-/*
- * mime-test.js: Tests for mime type indentification
- *
- * (C) 2010 Nodejitsu Inc.
- * MIT LICENSE
- *
- */
-
-var path = require('path'),
- vows = require('vows'),
- fs = require('fs'),
- assert = require('assert');
-
-require.paths.unshift(path.join(__dirname, '..', 'lib'));
-
-var cloudfiles = require('cloudfiles');
-
-var tests = {};
-
-// Create a test for each mime type
-Object.keys(cloudfiles.mime.types).forEach(function (ext) {
- var mimeType = cloudfiles.mime.types[ext],
- test = 'when passed a ' + ext + ' file',
- assertion = "should response with " + mimeType + " mimetype";
-
- tests[test] = { };
- tests[test][assertion] = function () {
- var testType = cloudfiles.mime.type('someFile' + ext);
- assert.isTrue(testType.indexOf(mimeType) !== -1);
- };
-});
-
-// Create a batch for the specified mime type
-var batch = {
- "When using the node-cloudfiles client": {
- "the mime type module": tests
- }
-};
-
-// Export the batch with vows
-vows.describe('cloudfiles/mime').addBatch(batch).export(module);

0 comments on commit 061d9ac

Please sign in to comment.