coke
Version:
A full stack MVC framework that speeds up your web development.
55 lines (43 loc) • 1.56 kB
JavaScript
/**
* Module dependencies.
* @private
*/
var fs = require( 'fs' );
var lib = require( './lib' );
module.exports = {
generate : function ( args, controller, has_namespace, scaffold ){
var path = 'config/routes.js';
var src = fs.readFileSync( lib.path( path ), 'utf8' );
var init_code = 'module.exports = function ( map ){';
var code = [ init_code ];
var namespace;
if( has_namespace ){
namespace = has_namespace.namespace;
controller = has_namespace.controller;
code.push( ' map.namespace( \'' + namespace + '\', function ( ' + namespace + ' ){' );
}
var tmp_code;
if( scaffold ){
tmp_code = namespace ?
' ' + namespace + '.resources( \'' + controller + '\' );' :
' map.resources( \'' + controller + '\' );';
code.push( tmp_code );
}else{
args.forEach( function ( action ){
var content = controller + '/' + action + '\', \'' + controller + '#' + action;
tmp_code = namespace ?
' ' + namespace + '.get( \'' + content + '\' );' :
' map.get( \'' + content + '\' );';
code.push( tmp_code );
});
}
// routes
if( namespace ) code.push( ' });' );
code = code.join( '\n' );
code = src.replace(
/module.exports(\n|\r|\r\n|\t+|\s+|)=(\n|\r|\r\n|\t+|\s+|)function(\n|\r|\r\n|\t+|\s+|)\((\n|\r|\r\n|\t+|\s+|)map(\n|\r|\r\n|\t+|\s+|)\)(\n|\r|\r\n|\t+|\s+|)\{(\t+|\s+|)/,
code + '\n '
);
lib.create_file_f( path, code );
}
};