| |
| /*! |
| * 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('')); |
| }; |