40 lines · 774 B · JavaScript
RawDownload
 /*! * 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(''));};