Mercurial > eldonilo > lightstring
diff lightstring.js @ 56:1d4b844586f6
Bind methods so Lightstring.Connection.plugin.method works with the correct context.
author | Sonny Piers <sonny.piers@gmail.com> |
---|---|
date | Wed, 01 Feb 2012 15:46:57 +0100 |
parents | aaad98b33f86 |
children | 91f18fdc0e2c |
line wrap: on
line diff
--- a/lightstring.js +++ b/lightstring.js @@ -391,17 +391,23 @@ Lightstring.Connection.prototype = { var plugin = Lightstring.plugins[name]; + //Namespaces for (var ns in plugin.namespaces) Lightstring.ns[ns] = plugin.namespaces[ns]; + //Stanzas Lightstring.stanzas[name] = {}; for (var stanza in plugin.stanzas) Lightstring.stanzas[name][stanza] = plugin.stanzas[stanza]; + //Handlers for (var handler in plugin.handlers) this.on(handler, plugin.handlers[handler]); - this[name] = plugin.methods; + //Methods + this[name] = {}: + for (var method in plugins.methods) + this[name][method].bind(this); if (plugin.init) plugin.init();