40 lines
774 B
JavaScript
40 lines
774 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(''));
|
|
}; |