From f5b6ae6dc97d6d9f1ca94545d348376bd4c79413 Mon Sep 17 00:00:00 2001 From: Camille Reynders Date: Sun, 14 Sep 2014 10:50:17 +0200 Subject: [PATCH] Bump to v0.7.1 --- backbone.geppetto.js | 4 ++-- bower.json | 2 +- dist/backbone.geppetto.min.js | 2 +- package.json | 2 +- version.json | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backbone.geppetto.js b/backbone.geppetto.js index d5bba6d..fe89ee1 100755 --- a/backbone.geppetto.js +++ b/backbone.geppetto.js @@ -1,4 +1,4 @@ -// backbone.geppetto 0.7.0 +// backbone.geppetto 0.7.1 // // Copyright (C) 2013 Dave Cadwallader, Model N, Inc. // Distributed under the MIT License @@ -74,7 +74,7 @@ var Geppetto = {}; - Geppetto.version = '0.7.0'; + Geppetto.version = '0.7.1'; Geppetto.EVENT_CONTEXT_SHUTDOWN = "Geppetto:contextShutdown"; diff --git a/bower.json b/bower.json index 072ddb8..841fdc2 100644 --- a/bower.json +++ b/bower.json @@ -2,7 +2,7 @@ "name": "backbone.geppetto", "description": "Bring your Backbone applications to life with an event-driven Command framework.", "homepage": "https://github.com/ModelN/backbone.geppetto", - "version": "0.7.0", + "version": "0.7.1", "main": "backbone.geppetto.js", "keywords": [ "backbone", diff --git a/dist/backbone.geppetto.min.js b/dist/backbone.geppetto.min.js index 8dac819..239d172 100644 --- a/dist/backbone.geppetto.min.js +++ b/dist/backbone.geppetto.min.js @@ -1 +1 @@ -!function(a){"object"==typeof exports?module.exports=a(require("underscore"),require("backbone")):"function"==typeof define&&define.amd?define(["underscore","backbone"],a):a(_,Backbone)}(function(a,b){"use strict";if(!b)throw"Please include Backbone before Geppetto";var c="no mapping found for key: ",d={SINGLETON:"singleton",VIEW:"view",OTHER:"other"},e=function(a){this._mappings={},this._context=a,this.parent=void 0};e.prototype={_createAndSetupInstance:function(a,b){var c=new a;return c.initialize||this.resolve(c,b),c},_retrieveFromCacheOrCreate:function(a,b){var e;if(this._mappings.hasOwnProperty(a)){var f=this._mappings[a];b||f.type!==d.SINGLETON?f.type===d.VIEW?e=f.clazz:f.clazz&&(e=this._createAndSetupInstance(f.clazz,f.wiring)):(f.object||(f.object=this._createAndSetupInstance(f.clazz,f.wiring)),e=f.object)}else{if(!this.parent||!this.parent.hasWiring(a))throw new Error(c+a);e=this.parent._retrieveFromCacheOrCreate(a,b)}return e},_wrapConstructor:function(a,b){if(a.prototype.initialize){var c=this._context;return a.extend({initialize:function(){c.resolver.resolve(this,b),a.prototype.initialize.apply(this,arguments)}})}return a},createChildResolver:function(){var a=new e(this._context);return a.parent=this,a},getObject:function(a){return this._retrieveFromCacheOrCreate(a,!1)},wireValue:function(a,b){return this._mappings[a]={clazz:null,object:b,type:d.SINGLETON},this},hasWiring:function(a){return this._mappings.hasOwnProperty(a)||!!this.parent&&this.parent.hasWiring(a)},wireClass:function(a,b,c){return this._mappings[a]={clazz:this._wrapConstructor(b,c),object:null,type:d.OTHER,wiring:c},this},wireView:function(a,b,c){return this._mappings[a]={clazz:this._wrapConstructor(b,c),object:null,type:d.VIEW},this},wireSingleton:function(a,b,c){return this._mappings[a]={clazz:this._wrapConstructor(b,c),object:null,type:d.SINGLETON,wiring:c},this},instantiate:function(a){return this._retrieveFromCacheOrCreate(a,!0)},resolve:function(b,c){if(c=c||b.wiring){var d=Number(!a.isArray(c));a.each(c,function(a){b[arguments[d]]=this.getObject(a)},this)}return this.addPubSub(b),this},addPubSub:function(b){b.listen=a.bind(this._context.listen,this._context),b.dispatch=a.bind(this._context.dispatch,this._context)},release:function(a){return delete this._mappings[a],this},releaseAll:function(){return this._mappings={},this}};var f={};f.version="0.7.0",f.EVENT_CONTEXT_SHUTDOWN="Geppetto:contextShutdown",f.Resolver=e;var g={};f.Context=function(c){this.options=c||{},this.parentContext=this.options.parentContext,this.options.resolver?this.resolver=this.options.resolver:this.parentContext?this.resolver=this.parentContext.resolver.createChildResolver():this.resolver||(this.resolver=new e(this)),this.vent={},a.extend(this.vent,b.Events),this._contextId=a.uniqueId("Context"),g[this._contextId]=this;var d=this.wiring||this.options.wiring;d&&this._configureWirings(d),a.isFunction(this.initialize)&&this.initialize.apply(this,arguments)},f.bindContext=function(b){this.options=b||{};var c=this.options.view,d=null;"function"==typeof this.options.context?(d=new this.options.context(this.options),c.close||(c.close=function(){c.trigger("close"),c.remove()}),c.on("close",function(){c.off("close"),d.destroy()})):"object"==typeof this.options.context&&(d=this.options.context),d.resolver.resolve(c),a.each(c.contextEvents,function(b,e){a.isFunction(b)?d.listen(c,e,b):a.isString(b)&&d.listen(c,e,c[b])});var e;return c.wiring||(c.context=d,e=d),e};var h=function(a,b){var c,d;return a.hasOwnProperty("ctor")?(c=a.ctor,d=a.wiring):c=a,[b,c,d]};f.Context.prototype._configureWirings=function(b){a.each(b.singletons,function(a,b){this.wireSingleton.apply(this,h(a,b))},this),a.each(b.classes,function(a,b){this.wireClass.apply(this,h(a,b))},this),a.each(b.values,function(a,b){this.wireValue(b,a)},this),a.each(b.views,function(a,b){this.wireView.apply(this,h(a,b))},this),this.wireCommands(b.commands)};var i=function(b,c,d){if(!a.isObject(b)||!a.isFunction(b.listenTo)||!a.isFunction(b.stopListening))throw"Target for listen() must define a 'listenTo' and 'stopListening' function";if(!a.isString(c))throw"eventName must be a String";if(!a.isFunction(d))throw"callback must be a function"};f.Context.prototype.listen=function(a,b,c){return i(a,b,c),a.listenTo(this.vent,b,c,a)},f.Context.prototype.listenToOnce=function(a,b,c){return i(a,b,c),a.listenToOnce(this.vent,b,c,a)},f.Context.prototype.dispatch=function(b,c){if(!a.isUndefined(c)&&!a.isObject(c))throw"Event payload must be an object";c=c||{},c.eventName=b,this.vent.trigger(b,c)},f.Context.prototype.dispatchToParent=function(a,b){this.parentContext&&this.parentContext.vent.trigger(a,b)},f.Context.prototype.dispatchGlobally=function(b,c){a.each(g,function(a){return a?void a.vent.trigger(b,c):!0})},f.Context.prototype.wireCommand=function(b,c,d){var e=this;if(!a.isFunction(c))throw"Command must be constructable";this.vent.listenTo(this.vent,b,function(f){var g=new c(e,b,f);g.context=e,g.eventName=b,g.eventData=f,e.resolver.resolve(g,d),a.isFunction(g.execute)&&g.execute()},this)},f.Context.prototype.wireCommands=function(b){var c=this;a.each(b,function(b,d){a.isArray(b)?a.each(b,function(a){c.wireCommand(d,a)}):c.wireCommand(d,b)})},f.Context.prototype.wireView=function(a,b,c){return this.resolver.wireView(a,b,c),this},f.Context.prototype.wireSingleton=function(a,b,c){return this.resolver.wireSingleton(a,b,c),this},f.Context.prototype.wireValue=function(a,b){return this.resolver.wireValue(a,b),this},f.Context.prototype.wireClass=function(a,b,c){return this.resolver.wireClass(a,b,c),this},f.Context.prototype.hasWiring=function(a){return this.resolver.hasWiring(a)},f.Context.prototype.getObject=function(a){return this.resolver.getObject(a)},f.Context.prototype.instantiate=function(a){return this.resolver.instantiate(a)},f.Context.prototype.resolve=function(a,b){return this.resolver.resolve(a,b),this},f.Context.prototype.release=function(a){return this.resolver.release(a),this},f.Context.prototype.releaseAll=function(){return this.resolver.releaseAll(),this},f.Context.prototype.destroy=function(){this.vent.stopListening(),this.resolver.releaseAll(),delete g[this._contextId],this.dispatchToParent(f.EVENT_CONTEXT_SHUTDOWN)},f.Context.extend=b.View.extend;var j={contexts:g,countEvents:function(){var b=0;return a.each(g,function(c,d){g.hasOwnProperty(d)&&(b+=a.size(c.vent._events))}),b},countContexts:function(){var b=0;return a.each(g,function(a,c){g.hasOwnProperty(c)&&b++}),b}};return f.setDebug=function(a){return this.debug=a?j:void 0,this.debug},b.Geppetto=f,f}); +!function(a){"object"==typeof exports?module.exports=a(require("underscore"),require("backbone")):"function"==typeof define&&define.amd?define(["underscore","backbone"],a):a(_,Backbone)}(function(a,b){"use strict";function c(b,c){var d=[b,null].concat(c),e=a.bind.apply(b,d);return new e}function d(b){return function(){return c(b,a.toArray(arguments))}}if(!b)throw"Please include Backbone before Geppetto";var e="no mapping found for key: ",f={SINGLETON:"singleton",VIEW:"view",OTHER:"other"},g=function(a,b){var c,d;return a.hasOwnProperty("ctor")?(c=a.ctor,d=a.wiring):c=a,[b,c,d]},h=function(b,c,d){if(!a.isObject(b)||!a.isFunction(b.listenTo)||!a.isFunction(b.stopListening))throw"Target for listen() must define a 'listenTo' and 'stopListening' function";if(!a.isString(c))throw"eventName must be a String";if(!a.isFunction(d))throw"callback must be a function"},i={};i.version="0.7.1",i.EVENT_CONTEXT_SHUTDOWN="Geppetto:contextShutdown";var j={};i.Context=function(c){this._mappings={},this.options=c||{},this.parentContext=this.options.parentContext,this.vent={},a.extend(this.vent,b.Events),this._contextId=a.uniqueId("Context"),j[this._contextId]=this;var d=this.wiring||this.options.wiring;d&&this._configureWirings(d),a.isFunction(this.initialize)&&this.initialize.apply(this,arguments)},i.Context.extend=b.View.extend,a.extend(i.Context.prototype,{_configureWirings:function(b){a.each(b.singletons,function(a,b){this.wireSingleton.apply(this,g(a,b))},this),a.each(b.classes,function(a,b){this.wireClass.apply(this,g(a,b))},this),a.each(b.values,function(a,b){this.wireValue(b,a)},this),a.each(b.views,function(a,b){this.wireView.apply(this,g(a,b))},this),this.wireCommands(b.commands)},_createAndSetupInstance:function(b){var d;if(b.params){var e=a.map(b.params,function(b){return a.isFunction(b)&&(b=b(this)),b},this);d=c(b.clazz,e)}else d=new b.clazz;return d.initialize||this.resolve(d,b.wiring),d},_retrieveFromCacheOrCreate:function(a,b){var c;if(this._mappings.hasOwnProperty(a)){var d=this._mappings[a];b||d.type!==f.SINGLETON?d.type===f.VIEW?c=d.clazz:d.clazz&&(c=this._createAndSetupInstance(d)):(d.object||(d.object=this._createAndSetupInstance(d)),c=d.object)}else{if(!this.parentContext||!this.parentContext.hasWiring(a))throw new Error(e+a);c=this.parentContext._retrieveFromCacheOrCreate(a,b)}return c},_wrapConstructor:function(a,b){var c=this;return a.extend?a.extend({constructor:function(){c.resolve(this,b),a.prototype.constructor.apply(this,arguments)}}):a},_mapContextEvents:function(b){a.each(b.contextEvents,function(c,d){a.isFunction(c)?this.listen(b,d,c):a.isString(c)&&this.listen(b,d,b[c])},this)},addPubSub:function(b){b.listen=a.bind(this.listen,this),b.dispatch=a.bind(this.dispatch,this)},listen:function(a,b,c){return h(a,b,c),a.listenTo(this.vent,b,c,a)},listenToOnce:function(a,b,c){return h(a,b,c),a.listenToOnce(this.vent,b,c,a)},dispatch:function(b,c){if(!a.isUndefined(c)&&!a.isObject(c))throw"Event payload must be an object";c=c||{},c.eventName=b,this.vent.trigger(b,c)},dispatchToParent:function(a,b){this.parentContext&&this.parentContext.vent.trigger(a,b)},dispatchToParents:function(a,b){!this.parentContext||b&&b.propagationDisabled||(this.parentContext.vent.trigger(a,b),this.parentContext&&this.parentContext.dispatchToParents(a,b))},dispatchGlobally:function(b,c){a.each(j,function(a){return a?void a.vent.trigger(b,c):!0})},wireCommand:function(b,c,d){var e=this;if(!a.isFunction(c))throw"Command must be constructable";this.vent.listenTo(this.vent,b,function(f){var g=new c(e,b,f);g.context=e,g.eventName=b,g.eventData=f,e.resolve(g,d),a.isFunction(g.execute)&&g.execute()})},wireCommands:function(b){var c=this;a.each(b,function(b,d){a.isArray(b)?a.each(b,function(a){c.wireCommand(d,a)}):c.wireCommand(d,b)})},wireValue:function(a,b){return this._mappings[a]={clazz:null,object:b,type:f.SINGLETON},this},wireClass:function(a,b,c){return this._mappings[a]={clazz:this._wrapConstructor(b,c),object:null,type:f.OTHER,wiring:c},this},wireView:function(a,b,c){return this._mappings[a]={clazz:d(this._wrapConstructor(b,c)),object:null,type:f.VIEW},this},wireSingleton:function(a,b,c){return this._mappings[a]={clazz:this._wrapConstructor(b,c),object:null,type:f.SINGLETON,wiring:c},this},configure:function(b){var c=this._mappings[b];if("undefined"==typeof c)throw new Error(e+b);if(!c.clazz||c.type===f.VIEW)throw new Error("Cannot configure "+b+": only possible for wirings of type singleton or class");c.params=a.toArray(arguments).slice(1)},hasWiring:function(a){return this._mappings.hasOwnProperty(a)||!!this.parentContext&&this.parentContext.hasWiring(a)},getObject:function(a){return this._retrieveFromCacheOrCreate(a,!1)},instantiate:function(a){return this._retrieveFromCacheOrCreate(a,!0)},resolve:function(b,c){if(c=c||b.wiring){var d=Number(!a.isArray(c));a.each(c,function(a){b[arguments[d]]=this.getObject(a)},this)}return this.addPubSub(b),this._mapContextEvents(b),this},release:function(a){return delete this._mappings[a],this},releaseAll:function(){return this._mappings={},this},destroy:function(){this.vent.stopListening(),this.releaseAll(),delete j[this._contextId],this.dispatchToParent(i.EVENT_CONTEXT_SHUTDOWN)}}),i.bindContext=function(a){this.options=a||{};var b=this.options.view,c=null;"function"==typeof this.options.context?(c=new this.options.context(this.options),b.close||(b.close=function(){b.trigger("close"),b.remove()}),b.on("close",function(){b.off("close"),c.destroy()})):"object"==typeof this.options.context&&(c=this.options.context),c.resolve(b);var d;return b.wiring||(b.context=c,d=c),d};var k={contexts:j,countEvents:function(){var b=0;return a.each(j,function(c,d){j.hasOwnProperty(d)&&(b+=a.size(c.vent._events))}),b},countContexts:function(){var b=0;return a.each(j,function(a,c){j.hasOwnProperty(c)&&b++}),b}};return i.setDebug=function(a){return this.debug=a?k:void 0,this.debug},b.Geppetto=i,i}); \ No newline at end of file diff --git a/package.json b/package.json index 9b0af26..343df85 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "backbone.geppetto", "description": "Bring your Backbone applications to life with an event-driven Command framework.", - "version": "0.7.0", + "version": "0.7.1", "homepage": "https://github.com/ModelN/backbone.geppetto", "author": { "name": "Dave Cadwallader", diff --git a/version.json b/version.json index 3be8083..0e9769e 100644 --- a/version.json +++ b/version.json @@ -1,3 +1,3 @@ { - "version": "0.7.0" + "version": "0.7.1" } \ No newline at end of file