postal.js/example/node/node_modules/express/lib/view/partial.js

40 lines
No EOL
775 B
JavaScript

/*!
* Express - view - Partial
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca>
* MIT Licensed
*/
/**
* Memory cache.
*/
var cache = {};
/**
* Resolve partial object name from the view path.
*
* Examples:
*
* "user.ejs" becomes "user"
* "forum thread.ejs" becomes "forumThread"
* "forum/thread/post.ejs" becomes "post"
* "blog-post.ejs" becomes "blogPost"
*
* @return {String}
* @api private
*/
exports.resolveObjectName = function ( view ) {
return cache[view] || (cache[view] = view
.split( '/' )
.slice( -1 )[0]
.split( '.' )[0]
.replace( /^_/, '' )
.replace( /[^a-zA-Z0-9 ]+/g, ' ' )
.split( / +/ ).map(
function ( word, i ) {
return i
? word[0].toUpperCase() + word.substr( 1 )
: word;
} ).join( '' ));
};