text: var path  = require('path')
    , tcase = require('t-case')
    , i     = require('i')();
  
  /**
   * Returns the template path for a specific seed
   *
   * @param  {Object} project Object returned from util.locations.get()
   * @param  {String} name    Name of the seed
   * @return {String}         Path to the template
   * @api public
   */
  
  exports.getTemplatePath = function(project, name) {
    return path.resolve([ __dirname, '..', '..', 'templates', project.name ].concat(name).join(path.sep));
  };
  
  /**
   * Returns module's path
   *
   * @param  {Object} project Object returned from util.locations.get()
   * @param  {String} name    Name of the module
   * @return {String}         Path to the module
   * @api public
   */
  
  exports.getModulePath = function(project, name) {
    var n           = name.split(path.sep)
      , moduleName  = n.splice(-1)[ 0 ]
      , proj        = project.useCWD === true ? process.cwd() : path.join(project.moduleDir, project.modulePath);
  
    return path.resolve([ proj ].concat(n.length > 0 ? n.join(path.sep) : [ ], moduleName).join(path.sep));
  };
  
  /**
   * Returns the correct filename from templates
   *
   * @param  {String} templateName Template's file name
   * @param  {String} name         Module's name
   * @return {String}              New file name
   * @api public
   */
  
  exports.fileName = function(templateName, name) {
    name = templateName
            .replace('Template', tcase.classCase(i.singularize(name)))
            .replace('template', tcase.classCase(i.singularize(name)));
  
    return name;
  };
  