marionette-rails 1.0.0.beta4 → 1.0.0.beta5
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Backbone.Marionette, v1.0.0-
|
2
|
+
* Backbone.Marionette, v1.0.0-beta5
|
3
3
|
* Copyright (c)2012 Derick Bailey, Muted Solutions, LLC.
|
4
4
|
* Distributed under MIT license
|
5
5
|
* http://github.com/marionettejs/backbone.marionette
|
@@ -1734,21 +1734,27 @@ _.extend(Marionette.Module, {
|
|
1734
1734
|
var length = moduleNames.length;
|
1735
1735
|
_.each(moduleNames, function(moduleName, i){
|
1736
1736
|
var isLastModuleInChain = (i === length-1);
|
1737
|
-
|
1737
|
+
var isFirstModuleInChain = (i === 0);
|
1738
1738
|
var module = that._getModuleDefinition(parentModule, moduleName, app);
|
1739
|
-
module.config.options = that._getModuleOptions(parentModule, moduleDefinition);
|
1740
1739
|
|
1741
|
-
// if
|
1742
|
-
//
|
1740
|
+
// if this is the last module in the chain, then set up
|
1741
|
+
// all of the module options from the configuration
|
1743
1742
|
if (isLastModuleInChain){
|
1744
|
-
that.
|
1743
|
+
module.config.options = that._getModuleOptions(module, parentModule, moduleDefinition);
|
1744
|
+
|
1745
|
+
// Only add a module definition and initializer when this is the last
|
1746
|
+
// module in a "parent.child.grandchild" hierarchy of module names and
|
1747
|
+
// when the module call has a definition function supplied
|
1748
|
+
if (module.config.options.hasDefinition){
|
1749
|
+
module.addDefinition(module.config.options.definition, customArgs);
|
1750
|
+
}
|
1745
1751
|
}
|
1746
1752
|
|
1747
|
-
//
|
1748
|
-
// the
|
1749
|
-
//
|
1750
|
-
if (
|
1751
|
-
|
1753
|
+
// if it's a top level module, and this is the only
|
1754
|
+
// module in the chain, then this one gets configured
|
1755
|
+
// to start with the parent app.
|
1756
|
+
if (isFirstModuleInChain && isLastModuleInChain ){
|
1757
|
+
that._configureStartWithApp(app, module);
|
1752
1758
|
}
|
1753
1759
|
|
1754
1760
|
// Reset the parent module so that the next child
|
@@ -1760,20 +1766,26 @@ _.extend(Marionette.Module, {
|
|
1760
1766
|
return parentModule;
|
1761
1767
|
},
|
1762
1768
|
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
if
|
1767
|
-
|
1768
|
-
|
1769
|
-
module.start(options);
|
1770
|
-
});
|
1769
|
+
// Only add the initializer if it is set to start with parent (the app),
|
1770
|
+
// and if it has not yet been added
|
1771
|
+
_configureStartWithApp: function(app, module){
|
1772
|
+
// skip this if we have already configured the module to start w/ the app
|
1773
|
+
if (module.config.startWithAppIsConfigured){
|
1774
|
+
return;
|
1771
1775
|
}
|
1776
|
+
|
1777
|
+
// start the module when the app starts
|
1778
|
+
app.addInitializer(function(options){
|
1779
|
+
// but only if the module is configured to start w/ parent
|
1780
|
+
if (module.config.options.startWithParent){
|
1781
|
+
module.start(options);
|
1782
|
+
}
|
1783
|
+
});
|
1772
1784
|
|
1773
1785
|
// prevent this module from being configured for
|
1774
1786
|
// auto start again. the first time the module
|
1775
1787
|
// is defined, determines it's auto-start
|
1776
|
-
module.config.
|
1788
|
+
module.config.startWithAppIsConfigured = true;
|
1777
1789
|
},
|
1778
1790
|
|
1779
1791
|
_getModuleDefinition: function(parentModule, moduleName, app){
|
@@ -1791,10 +1803,16 @@ _.extend(Marionette.Module, {
|
|
1791
1803
|
return module;
|
1792
1804
|
},
|
1793
1805
|
|
1794
|
-
_getModuleOptions: function(parentModule, moduleDefinition){
|
1795
|
-
// default to starting the module with the
|
1806
|
+
_getModuleOptions: function(module, parentModule, moduleDefinition){
|
1807
|
+
// default to starting the module with it's parent to whatever the
|
1808
|
+
var startWithParent = true;
|
1809
|
+
if (module.config.options && !module.config.options.startWithParent){
|
1810
|
+
startWithParent = false;
|
1811
|
+
}
|
1812
|
+
|
1813
|
+
// set up initial options for the module
|
1796
1814
|
var options = {
|
1797
|
-
startWithParent:
|
1815
|
+
startWithParent: startWithParent,
|
1798
1816
|
hasDefinition: !!moduleDefinition
|
1799
1817
|
};
|
1800
1818
|
|