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 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 file;
@ -66,9 +67,59 @@ var ls = exports.ls = function(dir, recurse, _allFiles, _path) {
return _allFiles;
};
// export the VM-specific implementations of the extra methods
// TODO: document extra methods here
var extras = require( runtime.getModulePath('fs') );
Object.keys(extras).forEach(function(extra) {
exports[extra] = extras[extra];
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(_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 fs = require('fs');
var path = require('path');
var runtime = require('jsdoc/util/runtime');
function prefixReducer(previousPath, current) {
var currentPath = [];

View File

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

View File

@ -35,7 +35,6 @@
*/
'use strict';
var runtime = require('jsdoc/util/runtime');
var util = require('util');
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

@ -1,4 +1,4 @@
/*global expect, jasmine: true, runs, waits */
/* global expect, jasmine: true, runs, waits */
'use strict';
var fs = require('jsdoc/fs');
@ -13,9 +13,6 @@ var jsdoc = {
src: {
handlers: require('jsdoc/src/handlers'),
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
for (var i = 0, len = specsList.length; i < len; ++i) {
filename = specsList[i];
require(filename.path().replace(/\\/g, '/').
replace(new RegExp('^' + jsdoc.env.dirname + '/test'), './').
replace(/\.\w+$/, ''));
require(filename.path().replace(/\\/g, '/')
.replace(new RegExp('^' + jsdoc.env.dirname + '/test'), './')
.replace(/\.\w+$/, ''));
}
// Run Jasmine
@ -155,9 +152,9 @@ jasmine.getDocSetFromFile = function(filename, parser, validate, augment) {
jsdoc.src.handlers.attachTo(testParser);
/*eslint-disable no-script-url */
/* eslint-disable no-script-url */
doclets = testParser.parse('javascript:' + sourceCode);
/*eslint-enable no-script-url */
/* eslint-enable no-script-url */
jsdoc.borrow.indexAll(doclets);
if (augment !== false) {

View File

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

View File

@ -2,7 +2,6 @@
describe('jsdoc/src/handlers', function() {
var handlers = require('jsdoc/src/handlers');
var runtime = require('jsdoc/util/runtime');
var testParser = jasmine.createParser();
handlers.attachTo(testParser);
@ -41,7 +40,7 @@ describe('jsdoc/src/handlers', function() {
});
describe('jsdocCommentFound handler', function() {
/*eslint no-script-url: 0 */
/* eslint no-script-url: 0 */
var sourceCode = 'javascript:/** @name bar */';
var result = testParser.parse(sourceCode);

View File

@ -1,4 +1,4 @@
/*eslint no-script-url: 0 */
/* eslint no-script-url: 0 */
'use strict';
describe('jsdoc/src/parser', function() {
@ -10,8 +10,7 @@ describe('jsdoc/src/parser', function() {
parser: require('jsdoc/src/parser')
},
util: {
logger: require('jsdoc/util/logger'),
runtime: require('jsdoc/util/runtime')
logger: require('jsdoc/util/logger')
}
};
var path = require('jsdoc/path');

View File

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