diff options
| author | Teddy Wing | 2013-04-27 19:25:40 -0400 | 
|---|---|---|
| committer | Teddy Wing | 2013-04-27 19:25:56 -0400 | 
| commit | 512e8b2da71de59132a29e80d7359ac843d62f07 (patch) | |
| tree | 3f5024a4f75072eda45713dcd429a0b58bf969b9 /node_modules/ejs/support | |
| parent | 4b14305623d5ddc59f435fc5e35c54c0def1d392 (diff) | |
| download | Who-am-I-512e8b2da71de59132a29e80d7359ac843d62f07.tar.bz2 | |
Untrack ./node_modules
Sorry, my bad for not ignoring it initially.
Diffstat (limited to 'node_modules/ejs/support')
| -rw-r--r-- | node_modules/ejs/support/compile.js | 176 | 
1 files changed, 0 insertions, 176 deletions
| diff --git a/node_modules/ejs/support/compile.js b/node_modules/ejs/support/compile.js deleted file mode 100644 index 497a1bb..0000000 --- a/node_modules/ejs/support/compile.js +++ /dev/null @@ -1,176 +0,0 @@ - -/** - * Module dependencies. - */ - -var fs = require('fs'); - -/** - * Arguments. - */ - -var args = process.argv.slice(2) -  , pending = args.length -  , files = {}; - -console.log(''); - -// parse arguments - -args.forEach(function(file){ -  var mod = file.replace('lib/', ''); -  fs.readFile(file, 'utf8', function(err, js){ -    if (err) throw err; -    console.log('  \033[90mcompile : \033[0m\033[36m%s\033[0m', file); -    files[file] = parse(js); -    --pending || compile(); -  }); -}); - -/** - * Parse the given `js`. - */ - -function parse(js) { -  return parseInheritance(parseConditionals(js)); -} - -/** - * Parse __proto__. - */ - -function parseInheritance(js) { -  return js -    .replace(/^ *(\w+)\.prototype\.__proto__ * = *(\w+)\.prototype *;?/gm, function(_, child, parent){ -      return child + '.prototype = new ' + parent + ';\n' -        + child + '.prototype.constructor = '+ child + ';\n'; -    }); -} - -/** - * Parse the given `js`, currently supporting: - *  - *    'if' ['node' | 'browser'] - *    'end' - *  - */ - -function parseConditionals(js) { -  var lines = js.split('\n') -    , len = lines.length -    , buffer = true -    , browser = false -    , buf = [] -    , line -    , cond; - -  for (var i = 0; i < len; ++i) { -    line = lines[i]; -    if (/^ *\/\/ *if *(node|browser)/gm.exec(line)) { -      cond = RegExp.$1; -      buffer = browser = 'browser' == cond; -    } else if (/^ *\/\/ *end/.test(line)) { -      buffer = true; -      browser = false; -    } else if (browser) { -      buf.push(line.replace(/^( *)\/\//, '$1')); -    } else if (buffer) { -      buf.push(line); -    } -  } - -  return buf.join('\n'); -} - -/** - * Compile the files. - */ - -function compile() { -  var buf = ''; -  buf += 'ejs = (function(){\n'; -  buf += '\n// CommonJS require()\n\n'; -  buf += browser.require + '\n\n'; -  buf += 'require.modules = {};\n\n'; -  buf += 'require.resolve = ' + browser.resolve + ';\n\n'; -  buf += 'require.register = ' + browser.register + ';\n\n'; -  buf += 'require.relative = ' + browser.relative + ';\n\n'; -  args.forEach(function(file){ -    var js = files[file]; -    file = file.replace('lib/', ''); -    buf += '\nrequire.register("' + file + '", function(module, exports, require){\n'; -    buf += js; -    buf += '\n}); // module: ' + file + '\n'; -  }); -  buf += '\n return require("ejs");\n})();'; -  fs.writeFile('ejs.js', buf, function(err){ -    if (err) throw err; -    console.log('  \033[90m create : \033[0m\033[36m%s\033[0m', 'ejs.js'); -    console.log(); -  }); -} - -// refactored version of weepy's -// https://github.com/weepy/brequire/blob/master/browser/brequire.js - -var browser = { -   -  /** -   * Require a module. -   */ -   -  require: function require(p){ -    if ('fs' == p) return {}; -    var path = require.resolve(p) -      , mod = require.modules[path]; -    if (!mod) throw new Error('failed to require "' + p + '"'); -    if (!mod.exports) { -      mod.exports = {}; -      mod.call(mod.exports, mod, mod.exports, require.relative(path)); -    } -    return mod.exports; -  }, -   -  /** -   * Resolve module path. -   */ - -  resolve: function(path){ -    var orig = path -      , reg = path + '.js' -      , index = path + '/index.js'; -    return require.modules[reg] && reg -      || require.modules[index] && index -      || orig; -  }, -   -  /** -   * Return relative require(). -   */ - -  relative: function(parent) { -    return function(p){ -      if ('.' != p.substr(0, 1)) return require(p); -       -      var path = parent.split('/') -        , segs = p.split('/'); -      path.pop(); -       -      for (var i = 0; i < segs.length; i++) { -        var seg = segs[i]; -        if ('..' == seg) path.pop(); -        else if ('.' != seg) path.push(seg); -      } - -      return require(path.join('/')); -    }; -  }, -   -  /** -   * Register a module. -   */ - -  register: function(path, fn){ -    require.modules[path] = fn; -  } -};
\ No newline at end of file | 
