This commit is contained in:
Jeff Williams 2015-11-25 16:03:45 -08:00
parent 62b5dbe0c7
commit ba673ff4c1
10 changed files with 67 additions and 89 deletions

View File

@ -6,7 +6,8 @@
var fs = require('fs'); var fs = require('fs');
var path = require('path'); var path = require('path');
var runtime = require('jsdoc/util/runtime'); var stream = require('stream');
var wrench = require('wrench');
var ls = exports.ls = function(dir, recurse, _allFiles, _path) { var ls = exports.ls = function(dir, recurse, _allFiles, _path) {
var file; var file;
@ -66,9 +67,59 @@ var ls = exports.ls = function(dir, recurse, _allFiles, _path) {
return _allFiles; return _allFiles;
}; };
// export the VM-specific implementations of the extra methods var toDir = exports.toDir = function(_path) {
// TODO: document extra methods here var isDirectory;
var extras = require( runtime.getModulePath('fs') );
Object.keys(extras).forEach(function(extra) { _path = path.normalize(_path);
exports[extra] = extras[extra];
try {
isDirectory = fs.statSync(_path).isDirectory();
}
catch (e) {
isDirectory = false;
}
if (isDirectory) {
return _path;
} else {
return path.dirname(_path);
}
};
exports.mkPath = function(_path) {
if ( Array.isArray(_path) ) {
_path = _path.join('');
}
wrench.mkdirSyncRecursive(_path);
};
// adapted from http://procbits.com/2011/11/15/synchronous-file-copy-in-node-js
exports.copyFileSync = function(inFile, outDir, fileName) {
var BUF_LENGTH = 64 * 1024;
var read;
var write;
var buffer = new Buffer(BUF_LENGTH);
var bytesRead = 1;
var outFile = path.join( outDir, fileName || path.basename(inFile) );
var pos = 0;
wrench.mkdirSyncRecursive(outDir);
read = fs.openSync(inFile, 'r');
write = fs.openSync(outFile, 'w');
while (bytesRead > 0) {
bytesRead = fs.readSync(read, buffer, 0, BUF_LENGTH, pos);
fs.writeSync(write, buffer, 0, bytesRead);
pos += bytesRead;
}
fs.closeSync(read);
return fs.closeSync(write);
};
Object.keys(fs).forEach(function(member) {
exports[member] = fs[member];
}); });

View File

@ -7,7 +7,6 @@
var env = require('jsdoc/env'); var env = require('jsdoc/env');
var fs = require('fs'); var fs = require('fs');
var path = require('path'); var path = require('path');
var runtime = require('jsdoc/util/runtime');
function prefixReducer(previousPath, current) { function prefixReducer(previousPath, current) {
var currentPath = []; var currentPath = [];

View File

@ -14,8 +14,7 @@ var jsdoc = {
syntax: require('jsdoc/src/syntax') syntax: require('jsdoc/src/syntax')
}, },
util: { util: {
doop: require('jsdoc/util/doop'), doop: require('jsdoc/util/doop')
runtime: require('jsdoc/util/runtime')
} }
}; };
var logger = require('jsdoc/util/logger'); var logger = require('jsdoc/util/logger');

View File

@ -35,7 +35,6 @@
*/ */
'use strict'; 'use strict';
var runtime = require('jsdoc/util/runtime');
var util = require('util'); var util = require('util');
function Logger() {} function Logger() {}

View File

@ -1,63 +0,0 @@
'use strict';
var fs = require('fs');
var path = require('path');
var stream = require('stream');
var wrench = require('wrench');
var toDir = exports.toDir = function(_path) {
var isDirectory;
_path = path.normalize(_path);
try {
isDirectory = fs.statSync(_path).isDirectory();
}
catch (e) {
isDirectory = false;
}
if (isDirectory) {
return _path;
} else {
return path.dirname(_path);
}
};
exports.mkPath = function(/**Array*/ _path) {
if ( Array.isArray(_path) ) {
_path = _path.join('');
}
wrench.mkdirSyncRecursive(_path);
};
// adapted from http://procbits.com/2011/11/15/synchronous-file-copy-in-node-js
exports.copyFileSync = function(inFile, outDir, fileName) {
var BUF_LENGTH = 64 * 1024;
var read;
var write;
var buffer = new Buffer(BUF_LENGTH);
var bytesRead = 1;
var outFile = path.join( outDir, fileName || path.basename(inFile) );
var pos = 0;
wrench.mkdirSyncRecursive(outDir);
read = fs.openSync(inFile, 'r');
write = fs.openSync(outFile, 'w');
while (bytesRead > 0) {
bytesRead = fs.readSync(read, buffer, 0, BUF_LENGTH, pos);
fs.writeSync(write, buffer, 0, bytesRead);
pos += bytesRead;
}
fs.closeSync(read);
return fs.closeSync(write);
};
Object.keys(fs).forEach(function(key) {
exports[key] = fs[key];
});

View File

@ -13,9 +13,6 @@ var jsdoc = {
src: { src: {
handlers: require('jsdoc/src/handlers'), handlers: require('jsdoc/src/handlers'),
parser: require('jsdoc/src/parser') parser: require('jsdoc/src/parser')
},
util: {
runtime: require('jsdoc/util/runtime')
} }
}; };
@ -111,9 +108,9 @@ jasmine.executeSpecsInFolder = function(folder, done, opts) {
// Add the specs to the context // Add the specs to the context
for (var i = 0, len = specsList.length; i < len; ++i) { for (var i = 0, len = specsList.length; i < len; ++i) {
filename = specsList[i]; filename = specsList[i];
require(filename.path().replace(/\\/g, '/'). require(filename.path().replace(/\\/g, '/')
replace(new RegExp('^' + jsdoc.env.dirname + '/test'), './'). .replace(new RegExp('^' + jsdoc.env.dirname + '/test'), './')
replace(/\.\w+$/, '')); .replace(/\.\w+$/, ''));
} }
// Run Jasmine // Run Jasmine

View File

@ -3,7 +3,6 @@
describe('module names', function() { describe('module names', function() {
var env = require('jsdoc/env'); var env = require('jsdoc/env');
var path = require('jsdoc/path'); var path = require('jsdoc/path');
var runtime = require('jsdoc/util/runtime');
var doclets; var doclets;

View File

@ -2,7 +2,6 @@
describe('jsdoc/src/handlers', function() { describe('jsdoc/src/handlers', function() {
var handlers = require('jsdoc/src/handlers'); var handlers = require('jsdoc/src/handlers');
var runtime = require('jsdoc/util/runtime');
var testParser = jasmine.createParser(); var testParser = jasmine.createParser();
handlers.attachTo(testParser); handlers.attachTo(testParser);

View File

@ -10,8 +10,7 @@ describe('jsdoc/src/parser', function() {
parser: require('jsdoc/src/parser') parser: require('jsdoc/src/parser')
}, },
util: { util: {
logger: require('jsdoc/util/logger'), logger: require('jsdoc/util/logger')
runtime: require('jsdoc/util/runtime')
} }
}; };
var path = require('jsdoc/path'); var path = require('jsdoc/path');

View File

@ -3,7 +3,6 @@
describe('@overview tag', function() { describe('@overview tag', function() {
var env = require('jsdoc/env'); var env = require('jsdoc/env');
var path = require('jsdoc/path'); var path = require('jsdoc/path');
var runtime = require('jsdoc/util/runtime');
var doclets; var doclets;