generate.js
Summary
No overview generated for 'generate.js'
require.paths.unshift('./lib')
var fs = require('fs');
var sys = require('sys');
var helpers = require('mobius-js/helpers/helpers');
var renderer = require('mobius-js/renderer/mejs');
var additionalGeneration = {};
additionalGeneration['controller'] = {view : '.html.mejs'};
function Generate() {};
Generate.prototype.generate = function(templateFile, generatedFile, className, fileType, fileName) {
try {
sys.puts('Generating ' + fileType + ': ' + generatedFile);
templateData = fs.readFileSync(templateFile);
var options = {
locals : {
className: className,
generatedFile: generatedFile,
openToken: '<%='
}
}
var body = renderer.render(templateData, options);
if (body) {
fs.writeFileSync(generatedFile, body);
}
if (additionalGeneration[fileType]) {
for (var key in additionalGeneration[fileType]) {
var type = key;
var extension = additionalGeneration[fileType]['view'];
Generate.prototype.parseArguments(type, fileName, extension);
}
}
} catch (e) {
sys.puts(e);
}
}
Generate.prototype.parseArguments = function(arg2, arg3, extension) {
var fileType = arg2;
var fileName = arg3.replace('_', '-');
var className = helpers.stringToClassName(fileName, '-');
var templatePath = 'lib/mobius-js/templates/';
var classPath = 'app/' + fileType + 's/';
var templateFile = templatePath + fileType + '.mejs'
var classFile = classPath + fileName + (extension ? extension : '.js');
try {
fs.lstatSync(templateFile);
try {
fs.lstatSync(classFile);
sys.puts('A ' + fileType + ' with this name already exists.');
} catch (e) {
Generate.prototype.generate(templateFile, classFile, className, fileType, fileName);
}
} catch (e) {
sys.puts(e);
sys.puts('Could not find template for generating file of type ' + fileType + '.');
}
}
if (!process.argv[2] || !process.argv[3]) {
sys.puts("Usage: node scripts/generate.js [file_type] [file_name]");
} else {
Generate.prototype.parseArguments(process.argv[2], process.argv[3]);
}
Documentation generated by
JSDoc on Sun May 9 00:47:14 2010