marionette-rails 1.0.0.beta4 → 1.0.0.beta5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
|
|