Nickolay - Scope.Provider-0.02
Name
Scope.Provider.NodeJS - scope provider, which uses the Script.runInNewContext call of the NodeJS.
SYNOPSIS
var provider = new Scope.Provider.NodeJS()
provider.setup(function () {
if (provider.scope.SOME_GLOBAL == 'some_value') {
...
}
provider.runCode(text, callback)
...
provider.runScript(url, callback)
...
provider.cleanup()
})
DESCRIPTION
Scope.Provider.NodeJS is an implementation of the scope provider,
which uses the Script.runInNewContext call of the NodeJS platform.
ISA
GETTING HELP
This extension is supported via github issues tracker: http://github.com/SamuraiJack/Scope-Provider/issues
For general Joose questions you can also visit #joose on irc.freenode.org or the forum at: http://joose.it/forum
SEE ALSO
Web page of this module: http://github.com/SamuraiJack/Scope-Provider/
General documentation for Joose: http://openjsan.org/go/?l=Joose
BUGS
All complex software has bugs lurking in it, and this module is no exception.
Please report any bugs through the web interface at http://github.com/SamuraiJack/Scope-Provider/issues
AUTHORS
Nickolay Platonov nplatonov@cpan.org
COPYRIGHT AND LICENSE
This software is Copyright (c) 2010 by Nickolay Platonov nplatonov@cpan.org.
This is free software, licensed under:
The GNU Lesser General Public License, Version 3, June 2007
Class('Scope.Provider.NodeJS', {
isa : Scope.Provider,
have : {
runner : null
},
methods : {
setup : function (callback) {
var Script = process.binding('evals').Script
var runnerSource = function (code) {
return (function () { return eval(code) })()
}
var runner = this.runner = Script.runInNewContext('__RUNNER__ = ' + runnerSource.toString(), {})
var scope = this.scope = runner('this')
Joose.O.extend(scope, {
process : process,
require : require,
global : scope,
setTimeout : setTimeout,
clearTimeout : clearTimeout,
setInterval : setInterval,
clearInterval : clearInterval
})
callback(this)
},
runCode : function (text, callback) {
this.runner(text)
callback()
},
runScript : function (url, callback) {
var content = require('fs').readFileSync(url, 'utf8')
this.runCode(content, callback)
},
cleanup : function () {
}
}
})
/**
Name
====
Scope.Provider.NodeJS - scope provider, which uses the `Script.runInNewContext` call of the NodeJS.
SYNOPSIS
========
var provider = new Scope.Provider.NodeJS()
provider.setup(function () {
if (provider.scope.SOME_GLOBAL == 'some_value') {
...
}
provider.runCode(text, callback)
...
provider.runScript(url, callback)
...
provider.cleanup()
})
DESCRIPTION
===========
`Scope.Provider.NodeJS` is an implementation of the scope provider,
which uses the `Script.runInNewContext` call of the NodeJS platform.
ISA
===
[Scope.Provider](../Provider.html)
GETTING HELP
============
This extension is supported via github issues tracker: <http://github.com/SamuraiJack/Scope-Provider/issues>
For general Joose questions you can also visit [#joose](http://webchat.freenode.net/?randomnick=1&channels=joose&prompt=1)
on irc.freenode.org or the forum at: <http://joose.it/forum>
SEE ALSO
========
Web page of this module: <http://github.com/SamuraiJack/Scope-Provider/>
General documentation for Joose: <http://openjsan.org/go/?l=Joose>
BUGS
====
All complex software has bugs lurking in it, and this module is no exception.
Please report any bugs through the web interface at <http://github.com/SamuraiJack/Scope-Provider/issues>
AUTHORS
=======
Nickolay Platonov <nplatonov@cpan.org>
COPYRIGHT AND LICENSE
=====================
This software is Copyright (c) 2010 by Nickolay Platonov <nplatonov@cpan.org>.
This is free software, licensed under:
The GNU Lesser General Public License, Version 3, June 2007
*/