Skip to content

Instantly share code, notes, and snippets.

@groovecoder
Created March 13, 2012 16:29
Show Gist options
  • Save groovecoder/2029765 to your computer and use it in GitHub Desktop.
Save groovecoder/2029765 to your computer and use it in GitHub Desktop.
// ### EJSTemplate
//
// Template executed using EJS
var EJSTemplate = ks_utils.Class(BaseTemplate, {
initialize: function (options) {
BaseTemplate.prototype.initialize.apply(this, arguments);
var ejs = require('ejs');
util.debug("EJSTemplate.initialize, source: " + util.inspect(this.options.source));
this.compiled = ejs.compile(this.options.source);
util.debug("EJSTemplate.initialize, compiled: " + util.inspect(this.compiled));
},
execute: function (args, ctx, next) {
util.debug("EJSTemplate.execute");
var $this = this,
compiled = this.compiled;
Fiber(function () {
util.debug("EJSTemplate.execute, Fiber");
try {
util.debug("EJSTemplate.execute, ctx: " + util.inspect(ctx));
var result = compiled(ctx);
util.debug("EJSTemplate.execute, result: " + util.inspect(result));
next(null, result.trim());
} catch (e) {
util.debug("EJSTemplate.execute, catch" + util.inspect(e));
next(e, '');
}
}).run();
}
});
@groovecoder
Copy link
Author

(kuma-venv)[vagrant@kuma vagrant]$ node kumascript/run.js
info: Service pid 10082 initializing
info: Starting up service on port 9080
DEBUG: EJSTemplate.initialize, source: '{%= parseInt($0) + parseInt($1) %}'
DEBUG: EJSTemplate.initialize, compiled: [Function]
DEBUG: EJSTemplate.execute
DEBUG: EJSTemplate.execute, Fiber
DEBUG: EJSTemplate.execute, ctx: { options:
{ apis:
{ wiki: [Function],
web: [Function],
string: [Function],
uri: [Function],
page: [Function],
kuma: [Function] },
request:
{ socket: [Object],
connection: [Object],
httpVersion: '1.1',
complete: true,
headers: [Object],
trailers: {},
readable: false,
url: '/docs/en-US/test-add',
method: 'GET',
statusCode: null,
client: [Object],
httpVersionMajor: 1,
httpVersionMinor: 1,
upgrade: false,
originalUrl: '/docs/en-US/test-add',
query: {},
app: [Object],
res: [Object],
next: [Function: next],
_startTime: Tue, 13 Mar 2012 16:07:40 GMT,
_logging: true,
_route_index: 0,
route: [Object],
params: [Object] },
response:
{ output: [],
outputEncodings: [],
writable: true,
_last: false,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
_hasBody: true,
_trailer: '',
finished: false,
socket: [Object],
connection: [Object],
_events: [Object],
_headers: [Object],
_headerNames: [Object],
app: [Object],
req: [Object],
end: [Function],
log: [Object],
writeHead: [Function] },
source: '

a template call: {{ add(5, 5) }}

' },
wiki:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
languages: [Function],
Languages: [Function],
pageExists: [Function],
pageexists: [Function],
PageExists: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function],
uri: [Function],
Uri: [Function] },
Wiki:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
languages: [Function],
Languages: [Function],
pageExists: [Function],
pageexists: [Function],
PageExists: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function],
uri: [Function],
Uri: [Function] },
web:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
link: [Function],
Link: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function] },
Web:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
link: [Function],
Link: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function] },
string:
{ options: { parent: [Circular] },
parent: [Circular],
Contains: [Function],
contains: [Function],
StartsWith: [Function],
startswith: [Function],
Substr: [Function],
substr: [Function],
initialize: [Function],
Initialize: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function],
toLower: [Function],
tolower: [Function],
ToLower: [Function] },
String:
{ options: { parent: [Circular] },
parent: [Circular],
Contains: [Function],
contains: [Function],
StartsWith: [Function],
startswith: [Function],
Substr: [Function],
substr: [Function],
initialize: [Function],
Initialize: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function],
toLower: [Function],
tolower: [Function],
ToLower: [Function] },
uri:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
parts: [Function],
Parts: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function] },
Uri:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
parts: [Function],
Parts: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function] },
page:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function],
uri: 'http://example.com/en/HTML/FakePage',
Uri: 'http://example.com/en/HTML/FakePage',
language: 'en',
Language: 'en' },
Page:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function],
uri: 'http://example.com/en/HTML/FakePage',
Uri: 'http://example.com/en/HTML/FakePage',
language: 'en',
Language: 'en' },
kuma:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function] },
Kuma:
{ options: { parent: [Circular] },
parent: [Circular],
initialize: [Function],
Initialize: [Function],
setVars: [Function],
setvars: [Function],
SetVars: [Function] },
'$$': [ 5, 5 ],
arguments: [ 5, 5 ],
'$0': 5,
'$1': 5,
'$2': '',
'$3': '',
'$4': '',
'$5': '',
'$6': '',
'$7': '',
'$8': '',
'$9': '',
'$10': '',
'$11': '',
'$12': '',
'$13': '',
'$14': '',
'$15': '',
'$16': '',
'$17': '',
'$18': '',
'$19': '',
'$20': '',
'$21': '',
'$22': '',
'$23': '',
'$24': '',
'$25': '',
'$26': '',
'$27': '',
'$28': '',
'$29': '',
'$30': '',
'$31': '',
'$32': '',
'$33': '',
'$34': '',
'$35': '',
'$36': '',
'$37': '',
'$38': '',
'$39': '',
'$40': '',
'$41': '',
'$42': '',
'$43': '',
'$44': '',
'$45': '',
'$46': '',
'$47': '',
'$48': '',
'$49': '',
'$50': '',
'$51': '',
'$52': '',
'$53': '',
'$54': '',
'$55': '',
'$56': '',
'$57': '',
'$58': '',
'$59': '',
'$60': '',
'$61': '',
'$62': '',
'$63': '',
'$64': '',
'$65': '',
'$66': '',
'$67': '',
'$68': '',
'$69': '',
'$70': '',
'$71': '',
'$72': '',
'$73': '',
'$74': '',
'$75': '',
'$76': '',
'$77': '',
'$78': '',
'$79': '',
'$80': '',
'$81': '',
'$82': '',
'$83': '',
'$84': '',
'$85': '',
'$86': '',
'$87': '',
'$88': '',
'$89': '',
'$90': '',
'$91': '',
'$92': '',
'$93': '',
'$94': '',
'$95': '',
'$96': '',
'$97': '',
'$98': '' }
DEBUG: EJSTemplate.execute, result: '{%= parseInt($0) + parseInt($1) %}'
info: 127.0.0.1 - - [Tue, 13 Mar 2012 16:07:41 GMT] "GET /docs/en-US/test-add HTTP/1.1" 200 71 "-" "python-requests.org" 1228 source=server

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment