marionette-rails 1.0.0 → 1.0.1
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.
- data/README.md +8 -1
- data/lib/marionette-rails/version.rb +5 -0
- data/vendor/assets/javascripts/backbone.marionette.js +52 -50
- metadata +5 -2
data/README.md
CHANGED
@@ -17,7 +17,7 @@ Add it to your Gemfile:
|
|
17
17
|
|
18
18
|
group :assets do
|
19
19
|
# Your other asset gems (sass-rails, coffee-rails, etc)
|
20
|
-
|
20
|
+
|
21
21
|
gem 'marionette-rails'
|
22
22
|
end
|
23
23
|
|
@@ -34,6 +34,13 @@ Or, if you are using pure javascript, add this to `app/assets/javascripts/applic
|
|
34
34
|
|
35
35
|
The gem will mirror the [Backbone.Marionette](https://github.com/marionettejs/backbone.marionette) versioning scheme. That is, version 0.8.2.* of `marionette-rails` would vendor [Backbone.Marionette](https://github.com/marionettejs/backbone.marionette) v0.8.2.
|
36
36
|
|
37
|
+
### Updating Backbone.Marionette
|
38
|
+
|
39
|
+
There are two rake tasks that aid with this process:
|
40
|
+
|
41
|
+
rake marionette:latest # => will fetch the latest Backbone.Marionette tag/SHA and print them
|
42
|
+
rake marionette:update # => will update the gem to the latest Backbone.Marionette js and update the gem version
|
43
|
+
|
37
44
|
## Contributing
|
38
45
|
|
39
46
|
For bugs in [Backbone.Marionette](https://github.com/marionettejs/backbone.marionette) itself, head over to their [issue tracker](https://github.com/marionettejs/backbone.marionette/issues). If you have a question, post it at [StackOverflow under the `backbone.marionette` tag](http://stackoverflow.com/questions/tagged/backbone.marionette).
|
@@ -1,6 +1,6 @@
|
|
1
1
|
// MarionetteJS (Backbone.Marionette)
|
2
2
|
// ----------------------------------
|
3
|
-
// v1.0.
|
3
|
+
// v1.0.1
|
4
4
|
//
|
5
5
|
// Copyright (c)2013 Derick Bailey, Muted Solutions, LLC.
|
6
6
|
// Distributed under MIT license
|
@@ -28,7 +28,7 @@
|
|
28
28
|
// shut down child views.
|
29
29
|
|
30
30
|
Backbone.ChildViewContainer = (function(Backbone, _){
|
31
|
-
|
31
|
+
|
32
32
|
// Container Constructor
|
33
33
|
// ---------------------
|
34
34
|
|
@@ -194,9 +194,9 @@ Backbone.ChildViewContainer = (function(Backbone, _){
|
|
194
194
|
//
|
195
195
|
// Mix in methods from Underscore, for iteration, and other
|
196
196
|
// collection related features.
|
197
|
-
var methods = ['forEach', 'each', 'map', 'find', 'detect', 'filter',
|
198
|
-
'select', 'reject', 'every', 'all', 'some', 'any', 'include',
|
199
|
-
'contains', 'invoke', 'toArray', 'first', 'initial', 'rest',
|
197
|
+
var methods = ['forEach', 'each', 'map', 'find', 'detect', 'filter',
|
198
|
+
'select', 'reject', 'every', 'all', 'some', 'any', 'include',
|
199
|
+
'contains', 'invoke', 'toArray', 'first', 'initial', 'rest',
|
200
200
|
'last', 'without', 'isEmpty', 'pluck'];
|
201
201
|
|
202
202
|
_.each(methods, function(method) {
|
@@ -231,14 +231,14 @@ Backbone.Wreqr = (function(Backbone, Marionette, _){
|
|
231
231
|
|
232
232
|
Wreqr.Handlers = (function(Backbone, _){
|
233
233
|
"use strict";
|
234
|
-
|
234
|
+
|
235
235
|
// Constructor
|
236
236
|
// -----------
|
237
237
|
|
238
238
|
var Handlers = function(options){
|
239
239
|
this.options = options;
|
240
240
|
this._wreqrHandlers = {};
|
241
|
-
|
241
|
+
|
242
242
|
if (_.isFunction(this.initialize)){
|
243
243
|
this.initialize(options);
|
244
244
|
}
|
@@ -344,7 +344,7 @@ Wreqr.CommandStorage = (function(){
|
|
344
344
|
|
345
345
|
// build the configuration
|
346
346
|
commands = {
|
347
|
-
command: commandName,
|
347
|
+
command: commandName,
|
348
348
|
instances: []
|
349
349
|
};
|
350
350
|
|
@@ -530,18 +530,18 @@ Marionette.getOption = function(target, optionName){
|
|
530
530
|
// Trigger an event and a corresponding method name. Examples:
|
531
531
|
//
|
532
532
|
// `this.triggerMethod("foo")` will trigger the "foo" event and
|
533
|
-
// call the "onFoo" method.
|
533
|
+
// call the "onFoo" method.
|
534
534
|
//
|
535
535
|
// `this.triggerMethod("foo:bar") will trigger the "foo:bar" event and
|
536
536
|
// call the "onFooBar" method.
|
537
537
|
Marionette.triggerMethod = (function(){
|
538
|
-
|
538
|
+
|
539
539
|
// split the event name on the :
|
540
540
|
var splitter = /(^|:)(\w)/gi;
|
541
541
|
|
542
542
|
// take the event section ("section1:section2:section3")
|
543
543
|
// and turn it in to uppercase name
|
544
|
-
function getEventName(match, prefix, eventName) {
|
544
|
+
function getEventName(match, prefix, eventName) {
|
545
545
|
return eventName.toUpperCase();
|
546
546
|
}
|
547
547
|
|
@@ -610,8 +610,8 @@ Marionette.MonitorDOMRefresh = (function(){
|
|
610
610
|
// Marionette.bindEntityEvents & unbindEntityEvents
|
611
611
|
// ---------------------------
|
612
612
|
//
|
613
|
-
// These methods are used to bind/unbind a backbone "entity" (collection/model)
|
614
|
-
// to methods on a target object.
|
613
|
+
// These methods are used to bind/unbind a backbone "entity" (collection/model)
|
614
|
+
// to methods on a target object.
|
615
615
|
//
|
616
616
|
// The first parameter, `target`, must have a `listenTo` method from the
|
617
617
|
// EventBinder object.
|
@@ -621,7 +621,7 @@ Marionette.MonitorDOMRefresh = (function(){
|
|
621
621
|
//
|
622
622
|
// The third parameter is a hash of { "event:name": "eventHandler" }
|
623
623
|
// configuration. Multiple handlers can be separated by a space. A
|
624
|
-
// function can be supplied instead of a string handler name.
|
624
|
+
// function can be supplied instead of a string handler name.
|
625
625
|
|
626
626
|
(function(Marionette){
|
627
627
|
"use strict";
|
@@ -663,7 +663,7 @@ Marionette.MonitorDOMRefresh = (function(){
|
|
663
663
|
target.stopListening(entity, evt, method, target);
|
664
664
|
}
|
665
665
|
|
666
|
-
|
666
|
+
|
667
667
|
// generic looping function
|
668
668
|
function iterateEvents(target, entity, bindings, functionCallback, stringCallback){
|
669
669
|
if (!entity || !bindings) { return; }
|
@@ -676,7 +676,7 @@ Marionette.MonitorDOMRefresh = (function(){
|
|
676
676
|
// iterate the bindings and bind them
|
677
677
|
_.each(bindings, function(methods, evt){
|
678
678
|
|
679
|
-
// allow for a function as the handler,
|
679
|
+
// allow for a function as the handler,
|
680
680
|
// or a list of event names as a string
|
681
681
|
if (_.isFunction(methods)){
|
682
682
|
functionCallback(target, entity, evt, methods);
|
@@ -686,7 +686,7 @@ Marionette.MonitorDOMRefresh = (function(){
|
|
686
686
|
|
687
687
|
});
|
688
688
|
}
|
689
|
-
|
689
|
+
|
690
690
|
// Export Public API
|
691
691
|
Marionette.bindEntityEvents = function(target, entity, bindings){
|
692
692
|
iterateEvents(target, entity, bindings, bindToFunction, bindFromStrings);
|
@@ -713,7 +713,7 @@ Marionette.Callbacks = function(){
|
|
713
713
|
_.extend(Marionette.Callbacks.prototype, {
|
714
714
|
|
715
715
|
// Add a callback to be executed. Callbacks added here are
|
716
|
-
// guaranteed to execute, even if they are added after the
|
716
|
+
// guaranteed to execute, even if they are added after the
|
717
717
|
// `run` method is called.
|
718
718
|
add: function(callback, contextOverride){
|
719
719
|
this._callbacks.push({cb: callback, ctx: contextOverride});
|
@@ -724,8 +724,8 @@ _.extend(Marionette.Callbacks.prototype, {
|
|
724
724
|
});
|
725
725
|
},
|
726
726
|
|
727
|
-
// Run all registered callbacks with the context specified.
|
728
|
-
// Additional callbacks can be added after this has been run
|
727
|
+
// Run all registered callbacks with the context specified.
|
728
|
+
// Additional callbacks can be added after this has been run
|
729
729
|
// and they will still be executed.
|
730
730
|
run: function(options, context){
|
731
731
|
this._deferred.resolve(context, options);
|
@@ -737,7 +737,7 @@ _.extend(Marionette.Callbacks.prototype, {
|
|
737
737
|
var callbacks = this._callbacks;
|
738
738
|
this._deferred = Marionette.$.Deferred();
|
739
739
|
this._callbacks = [];
|
740
|
-
|
740
|
+
|
741
741
|
_.each(callbacks, function(cb){
|
742
742
|
this.add(cb.cb, cb.ctx);
|
743
743
|
}, this);
|
@@ -774,7 +774,7 @@ _.extend(Marionette.Controller.prototype, Backbone.Events, {
|
|
774
774
|
}
|
775
775
|
});
|
776
776
|
|
777
|
-
// Region
|
777
|
+
// Region
|
778
778
|
// ------
|
779
779
|
//
|
780
780
|
// Manage the visual regions of your composite application. See
|
@@ -828,19 +828,19 @@ _.extend(Marionette.Region, {
|
|
828
828
|
}
|
829
829
|
|
830
830
|
var selector, RegionType;
|
831
|
-
|
831
|
+
|
832
832
|
// get the selector for the region
|
833
|
-
|
833
|
+
|
834
834
|
if (regionIsString) {
|
835
835
|
selector = regionConfig;
|
836
|
-
}
|
836
|
+
}
|
837
837
|
|
838
838
|
if (regionConfig.selector) {
|
839
839
|
selector = regionConfig.selector;
|
840
840
|
}
|
841
841
|
|
842
842
|
// get the type for the region
|
843
|
-
|
843
|
+
|
844
844
|
if (regionIsType){
|
845
845
|
RegionType = regionConfig;
|
846
846
|
}
|
@@ -852,7 +852,7 @@ _.extend(Marionette.Region, {
|
|
852
852
|
if (regionConfig.regionType) {
|
853
853
|
RegionType = regionConfig.regionType;
|
854
854
|
}
|
855
|
-
|
855
|
+
|
856
856
|
// build the region instance
|
857
857
|
var region = new RegionType({
|
858
858
|
el: selector
|
@@ -941,8 +941,8 @@ _.extend(Marionette.Region.prototype, Backbone.Events, {
|
|
941
941
|
delete this.currentView;
|
942
942
|
},
|
943
943
|
|
944
|
-
// Attach an existing view to the region. This
|
945
|
-
// will not call `render` or `onShow` for the new view,
|
944
|
+
// Attach an existing view to the region. This
|
945
|
+
// will not call `render` or `onShow` for the new view,
|
946
946
|
// and will not replace the current HTML for the `el`
|
947
947
|
// of the region.
|
948
948
|
attachView: function(view){
|
@@ -1007,6 +1007,8 @@ Marionette.RegionManager = (function(Marionette){
|
|
1007
1007
|
|
1008
1008
|
if (isString || (isObject && hasSelector)){
|
1009
1009
|
region = Marionette.Region.buildRegion(definition, Marionette.Region);
|
1010
|
+
} else if (_.isFunction(definition)){
|
1011
|
+
region = Marionette.Region.buildRegion(definition, Marionette.Region);
|
1010
1012
|
} else {
|
1011
1013
|
region = definition;
|
1012
1014
|
}
|
@@ -1071,9 +1073,9 @@ Marionette.RegionManager = (function(Marionette){
|
|
1071
1073
|
//
|
1072
1074
|
// Mix in methods from Underscore, for iteration, and other
|
1073
1075
|
// collection related features.
|
1074
|
-
var methods = ['forEach', 'each', 'map', 'find', 'detect', 'filter',
|
1075
|
-
'select', 'reject', 'every', 'all', 'some', 'any', 'include',
|
1076
|
-
'contains', 'invoke', 'toArray', 'first', 'initial', 'rest',
|
1076
|
+
var methods = ['forEach', 'each', 'map', 'find', 'detect', 'filter',
|
1077
|
+
'select', 'reject', 'every', 'all', 'some', 'any', 'include',
|
1078
|
+
'contains', 'invoke', 'toArray', 'first', 'initial', 'rest',
|
1077
1079
|
'last', 'without', 'isEmpty', 'pluck'];
|
1078
1080
|
|
1079
1081
|
_.each(methods, function(method) {
|
@@ -1098,7 +1100,7 @@ Marionette.TemplateCache = function(templateId){
|
|
1098
1100
|
};
|
1099
1101
|
|
1100
1102
|
// TemplateCache object-level methods. Manage the template
|
1101
|
-
// caches from these method calls instead of creating
|
1103
|
+
// caches from these method calls instead of creating
|
1102
1104
|
// your own TemplateCache instances
|
1103
1105
|
_.extend(Marionette.TemplateCache, {
|
1104
1106
|
templateCaches: {},
|
@@ -1121,7 +1123,7 @@ _.extend(Marionette.TemplateCache, {
|
|
1121
1123
|
// are specified, clears all templates:
|
1122
1124
|
// `clear()`
|
1123
1125
|
//
|
1124
|
-
// If arguments are specified, clears each of the
|
1126
|
+
// If arguments are specified, clears each of the
|
1125
1127
|
// specified templates from the cache:
|
1126
1128
|
// `clear("#t1", "#t2", "...")`
|
1127
1129
|
clear: function(){
|
@@ -1161,7 +1163,7 @@ _.extend(Marionette.TemplateCache.prototype, {
|
|
1161
1163
|
// Load a template from the DOM, by default. Override
|
1162
1164
|
// this method to provide your own template retrieval
|
1163
1165
|
// For asynchronous loading with AMD/RequireJS, consider
|
1164
|
-
// using a template-loader plugin as described here:
|
1166
|
+
// using a template-loader plugin as described here:
|
1165
1167
|
// https://github.com/marionettejs/backbone.marionette/wiki/Using-marionette-with-requirejs
|
1166
1168
|
loadTemplate: function(templateId){
|
1167
1169
|
var template = Marionette.$(templateId).html();
|
@@ -1219,7 +1221,7 @@ Marionette.View = Backbone.View.extend({
|
|
1219
1221
|
},
|
1220
1222
|
|
1221
1223
|
// import the "triggerMethod" to trigger events with corresponding
|
1222
|
-
// methods if the method exists
|
1224
|
+
// methods if the method exists
|
1223
1225
|
triggerMethod: Marionette.triggerMethod,
|
1224
1226
|
|
1225
1227
|
// Get the template for this view
|
@@ -1281,7 +1283,7 @@ Marionette.View = Backbone.View.extend({
|
|
1281
1283
|
return triggerEvents;
|
1282
1284
|
},
|
1283
1285
|
|
1284
|
-
// Overriding Backbone.View's delegateEvents to handle
|
1286
|
+
// Overriding Backbone.View's delegateEvents to handle
|
1285
1287
|
// the `triggers`, `modelEvents`, and `collectionEvents` configuration
|
1286
1288
|
delegateEvents: function(events){
|
1287
1289
|
this._delegateDOMEvents(events);
|
@@ -1587,9 +1589,9 @@ Marionette.CollectionView = Marionette.View.extend({
|
|
1587
1589
|
itemViewOptions = itemViewOptions.call(this, item, index);
|
1588
1590
|
}
|
1589
1591
|
|
1590
|
-
// build the view
|
1592
|
+
// build the view
|
1591
1593
|
var view = this.buildItemView(item, ItemView, itemViewOptions);
|
1592
|
-
|
1594
|
+
|
1593
1595
|
// set up the child view event forwarding
|
1594
1596
|
this.addChildViewEventForwarding(view);
|
1595
1597
|
|
@@ -1749,7 +1751,7 @@ Marionette.CompositeView = Marionette.CollectionView.extend({
|
|
1749
1751
|
return itemView;
|
1750
1752
|
},
|
1751
1753
|
|
1752
|
-
// Serialize the collection for the view.
|
1754
|
+
// Serialize the collection for the view.
|
1753
1755
|
// You can override the `serializeData` method in your own view
|
1754
1756
|
// definition, to provide custom serialization for your view's data.
|
1755
1757
|
serializeData: function(){
|
@@ -1773,7 +1775,7 @@ Marionette.CompositeView = Marionette.CollectionView.extend({
|
|
1773
1775
|
this.triggerBeforeRender();
|
1774
1776
|
var html = this.renderModel();
|
1775
1777
|
this.$el.html(html);
|
1776
|
-
// the ui bindings is done here and not at the end of render since they
|
1778
|
+
// the ui bindings is done here and not at the end of render since they
|
1777
1779
|
// will not be available until after the model is rendered, but should be
|
1778
1780
|
// available before the collection is rendered.
|
1779
1781
|
this.bindUIElements();
|
@@ -1858,7 +1860,7 @@ Marionette.CompositeView = Marionette.CollectionView.extend({
|
|
1858
1860
|
// Used for composite view management and sub-application areas.
|
1859
1861
|
Marionette.Layout = Marionette.ItemView.extend({
|
1860
1862
|
regionType: Marionette.Region,
|
1861
|
-
|
1863
|
+
|
1862
1864
|
// Ensure the regions are available when the `initialize` method
|
1863
1865
|
// is called.
|
1864
1866
|
constructor: function (options) {
|
@@ -1866,7 +1868,7 @@ Marionette.Layout = Marionette.ItemView.extend({
|
|
1866
1868
|
|
1867
1869
|
this._firstRender = true;
|
1868
1870
|
this._initializeRegions(options);
|
1869
|
-
|
1871
|
+
|
1870
1872
|
Marionette.ItemView.call(this, options);
|
1871
1873
|
},
|
1872
1874
|
|
@@ -1881,11 +1883,11 @@ Marionette.Layout = Marionette.ItemView.extend({
|
|
1881
1883
|
// reset the regions
|
1882
1884
|
this._firstRender = false;
|
1883
1885
|
} else if (this.isClosed){
|
1884
|
-
// a previously closed layout means we need to
|
1886
|
+
// a previously closed layout means we need to
|
1885
1887
|
// completely re-initialize the regions
|
1886
1888
|
this._initializeRegions();
|
1887
1889
|
} else {
|
1888
|
-
// If this is not the first render call, then we need to
|
1890
|
+
// If this is not the first render call, then we need to
|
1889
1891
|
// re-initializing the `el` for each region
|
1890
1892
|
this._reInitializeRegions();
|
1891
1893
|
}
|
@@ -1934,7 +1936,7 @@ Marionette.Layout = Marionette.ItemView.extend({
|
|
1934
1936
|
},
|
1935
1937
|
|
1936
1938
|
// Internal method to initialize the regions that have been defined in a
|
1937
|
-
// `regions` attribute on this layout.
|
1939
|
+
// `regions` attribute on this layout.
|
1938
1940
|
_initializeRegions: function (options) {
|
1939
1941
|
var regions;
|
1940
1942
|
this._initRegionManager();
|
@@ -1985,7 +1987,7 @@ Marionette.Layout = Marionette.ItemView.extend({
|
|
1985
1987
|
//
|
1986
1988
|
// Configure an AppRouter with `appRoutes`.
|
1987
1989
|
//
|
1988
|
-
// App routers can only take one `controller` object.
|
1990
|
+
// App routers can only take one `controller` object.
|
1989
1991
|
// It is recommended that you divide your controller
|
1990
1992
|
// objects in to smaller pieces of related functionality
|
1991
1993
|
// and have multiple routers / controllers, instead of
|
@@ -2073,7 +2075,7 @@ _.extend(Marionette.Application.prototype, Backbone.Events, {
|
|
2073
2075
|
this.triggerMethod("start", options);
|
2074
2076
|
},
|
2075
2077
|
|
2076
|
-
// Add regions to your app.
|
2078
|
+
// Add regions to your app.
|
2077
2079
|
// Accepts a hash of named strings or Region objects
|
2078
2080
|
// addRegions({something: "#someRegion"})
|
2079
2081
|
// addRegions({something: Region.extend({el: "#someRegion"}) });
|
@@ -2278,7 +2280,7 @@ _.extend(Marionette.Module, {
|
|
2278
2280
|
},
|
2279
2281
|
|
2280
2282
|
_addModuleDefinition: function(parentModule, module, def, args){
|
2281
|
-
var fn;
|
2283
|
+
var fn;
|
2282
2284
|
var startWithParent;
|
2283
2285
|
|
2284
2286
|
if (_.isFunction(def)){
|
@@ -2290,7 +2292,7 @@ _.extend(Marionette.Module, {
|
|
2290
2292
|
// if an object is supplied
|
2291
2293
|
fn = def.define;
|
2292
2294
|
startWithParent = def.startWithParent;
|
2293
|
-
|
2295
|
+
|
2294
2296
|
} else {
|
2295
2297
|
// if nothing is supplied
|
2296
2298
|
startWithParent = true;
|
metadata
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marionette-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Godfrey Chan
|
9
|
+
- Stafford Brunk
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
@@ -27,13 +28,15 @@ dependencies:
|
|
27
28
|
- - ! '>='
|
28
29
|
- !ruby/object:Gem::Version
|
29
30
|
version: 3.1.0
|
30
|
-
description: Vendors Backbone.Marionette for use with asset pipeline.
|
31
|
+
description: Vendors Backbone.Marionette for use with the asset pipeline.
|
31
32
|
email:
|
32
33
|
- godfreykfc@gmail.com
|
34
|
+
- stafford.brunk@gmail.com
|
33
35
|
executables: []
|
34
36
|
extensions: []
|
35
37
|
extra_rdoc_files: []
|
36
38
|
files:
|
39
|
+
- lib/marionette-rails/version.rb
|
37
40
|
- lib/marionette-rails.rb
|
38
41
|
- vendor/assets/javascripts/backbone.marionette.js
|
39
42
|
- LICENSE
|