js_stack 0.5.2 → 0.5.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4feb64662ad7118e2cc34b6e089e80bf5f42178c
4
- data.tar.gz: cb98a6dab9bc6aa94172a947e99eb0136038ddb0
3
+ metadata.gz: 29fee1a219a33e885c5cb97a2f3ba363a7363def
4
+ data.tar.gz: 3b650964d38c3be35eebd251eca344b66bf05531
5
5
  SHA512:
6
- metadata.gz: faa5ca1c994eb124bf4d92b60c0edc525b453484eedda515512099943409128ec0d65729d38b45f629e4c03ad5549234e8eae61267c33dad77bc423ae4810f70
7
- data.tar.gz: 0da1844338acdc08246c36904cc0fcba6a16c69688a42db1ef028096bc8efa2a11e8d6873cf005f897c02f03cc102c1d5e08ffd2964acd781ea44b283bbab609
6
+ metadata.gz: 467e50a12a2bfdf01d68eba11a13e04fc77760b34db8af895b304d0ad727047ddb3b4d87f9e965e4841e9b9439a67d2200cdf58d362ad7be696c70fe1c3abd34
7
+ data.tar.gz: de943f1dc183ea9626a38e575850b1326a7b827a69a06065922d8709a5e519ed25ce779814166b2d126f3facd7b7398b3be331d2baaa9921482ce4ab61cdfb99
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.3
4
+
5
+ * add backbone.routefilter 0.2.0 [@gvl]
6
+
3
7
  ## 0.5.2
4
8
 
5
9
  * update marionette 1.6.2 -> 1.6.4 [@gvl]
data/README.md CHANGED
@@ -66,6 +66,7 @@ Examples:
66
66
  | backbone deepmodel | **0.10.4** | [changelog](https://github.com/powmedia/backbone-deep-model#changelog) | [homepage](https://github.com/powmedia/backbone-deep-model) | Yes
67
67
  | backbone mutators | **0.4.1** | [changelog](https://github.com/asciidisco/Backbone.Mutators#changelog) | [homepage](https://github.com/asciidisco/Backbone.Mutators) | No
68
68
  | backbone pageable | **1.4.5**, 1.3.2 | [changelog](https://github.com/backbone-paginator/backbone-pageable#change-log) | [homepage](https://github.com/wyuenho/backbone-pageable) | Yes
69
+ | backbone routefilter | **0.2.0** | [changelog](https://github.com/boazsender/backbone.routefilter#release-history) | [homepage](https://github.com/boazsender/backbone.routefilter) | No
69
70
  | backbone stickit | **0.7.0**, 0.6.3 | [changelog](http://nytimes.github.io/backbone.stickit/#change-log) | [homepage](http://nytimes.github.io/backbone.stickit/) | Yes
70
71
  | backbone validation | **0.9.1**, 0.8.1 | [changelog](https://github.com/thedersen/backbone.validation#release-notes) | [homepage](https://github.com/thedersen/backbone.validation) | Yes
71
72
  | backbone virtualcollection | **0.4.8**, 0.4.5 | [changelog](https://github.com/p3drosola/Backbone.VirtualCollection#changelog) | [homepage](https://github.com/p3drosola/Backbone.VirtualCollection) | Yes
@@ -1,3 +1,3 @@
1
1
  module JsStack
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
@@ -0,0 +1,120 @@
1
+ /*! backbone.routefilter - v0.2.0 - 2013-02-16
2
+ * https://github.com/boazsender/backbone.routefilter
3
+ * Copyright (c) 2013 Boaz Sender; Licensed MIT */
4
+
5
+ (function(Backbone, _) {
6
+
7
+ // Save a reference to the original route method to be called
8
+ // after we pave it over.
9
+ var originalRoute = Backbone.Router.prototype.route;
10
+
11
+ // Create a reusable no operation func for the case where a before
12
+ // or after filter is not set. Backbone or Underscore should have
13
+ // a global one of these in my opinion.
14
+ var nop = function(){};
15
+
16
+ // Extend the router prototype with a default before function,
17
+ // a default after function, and a pave over of _bindRoutes.
18
+ _.extend(Backbone.Router.prototype, {
19
+
20
+ // Add default before filter.
21
+ before: nop,
22
+
23
+ // Add default after filter.
24
+ after: nop,
25
+
26
+ // Pave over Backbone.Router.prototype.route, the public method used
27
+ // for adding routes to a router instance on the fly, and the
28
+ // method which backbone uses internally for binding routes to handlers
29
+ // on the Backbone.history singleton once it's instantiated.
30
+ route: function(route, name, callback) {
31
+
32
+ // If there is no callback present for this route, then set it to
33
+ // be the name that was set in the routes property of the constructor,
34
+ // or the name arguement of the route method invocation. This is what
35
+ // Backbone.Router.route already does. We need to do it again,
36
+ // because we are about to wrap the callback in a function that calls
37
+ // the before and after filters as well as the original callback that
38
+ // was passed in.
39
+ if( !callback ){
40
+ callback = this[ name ];
41
+ }
42
+
43
+ // Create a new callback to replace the original callback that calls
44
+ // the before and after filters as well as the original callback
45
+ // internally.
46
+ var wrappedCallback = _.bind( function() {
47
+
48
+ // Call the before filter and if it returns false, run the
49
+ // route's original callback, and after filter. This allows
50
+ // the user to return false from within the before filter
51
+ // to prevent the original route callback and after
52
+ // filter from running.
53
+ var callbackArgs = [ route, _.toArray(arguments) ];
54
+ var beforeCallback;
55
+
56
+ if ( _.isFunction(this.before) ) {
57
+
58
+ // If the before filter is just a single function, then call
59
+ // it with the arguments.
60
+ beforeCallback = this.before;
61
+ } else if ( typeof this.before[route] !== "undefined" ) {
62
+
63
+ // otherwise, find the appropriate callback for the route name
64
+ // and call that.
65
+ beforeCallback = this.before[route];
66
+ } else {
67
+
68
+ // otherwise, if we have a hash of routes, but no before callback
69
+ // for this route, just use a nop function.
70
+ beforeCallback = nop;
71
+ }
72
+
73
+ // If the before callback fails during its execusion (by returning)
74
+ // false, then do not proceed with the route triggering.
75
+ if ( beforeCallback.apply(this, callbackArgs) === false ) {
76
+ return;
77
+ }
78
+
79
+ // If the callback exists, then call it. This means that the before
80
+ // and after filters will be called whether or not an actual
81
+ // callback function is supplied to handle a given route.
82
+ if( callback ) {
83
+ callback.apply( this, arguments );
84
+ }
85
+
86
+ var afterCallback;
87
+ if ( _.isFunction(this.after) ) {
88
+
89
+ // If the after filter is a single funciton, then call it with
90
+ // the proper arguments.
91
+ afterCallback = this.after;
92
+
93
+ } else if ( typeof this.after[route] !== "undefined" ) {
94
+
95
+ // otherwise if we have a hash of routes, call the appropriate
96
+ // callback based on the route name.
97
+ afterCallback = this.after[route];
98
+
99
+ } else {
100
+
101
+ // otherwise, if we have a has of routes but no after callback
102
+ // for this route, just use the nop function.
103
+ afterCallback = nop;
104
+ }
105
+
106
+ // Call the after filter.
107
+ afterCallback.apply( this, callbackArgs );
108
+
109
+ }, this);
110
+
111
+ // Call our original route, replacing the callback that was originally
112
+ // passed in when Backbone.Router.route was invoked with our wrapped
113
+ // callback that calls the before and after callbacks as well as the
114
+ // original callback.
115
+ return originalRoute.call( this, route, name, wrappedCallback );
116
+ }
117
+
118
+ });
119
+
120
+ }(Backbone, _));
@@ -0,0 +1 @@
1
+ //= require js_stack/plugins/backbone/routefilter/0.2.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js_stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomasz Pewiński
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-06 00:00:00.000000000 Z
12
+ date: 2014-03-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: haml_coffee_assets
@@ -122,6 +122,7 @@ files:
122
122
  - vendor/assets/javascripts/js_stack/plugins/backbone.deepmodel.js
123
123
  - vendor/assets/javascripts/js_stack/plugins/backbone.mutators.js
124
124
  - vendor/assets/javascripts/js_stack/plugins/backbone.pageable.js
125
+ - vendor/assets/javascripts/js_stack/plugins/backbone.routefilter.js
125
126
  - vendor/assets/javascripts/js_stack/plugins/backbone.stickit.js
126
127
  - vendor/assets/javascripts/js_stack/plugins/backbone.validation.js
127
128
  - vendor/assets/javascripts/js_stack/plugins/backbone.virtualcollection.js
@@ -133,6 +134,7 @@ files:
133
134
  - vendor/assets/javascripts/js_stack/plugins/backbone/mutators/0.4.1.js
134
135
  - vendor/assets/javascripts/js_stack/plugins/backbone/pageable/1.3.2.js
135
136
  - vendor/assets/javascripts/js_stack/plugins/backbone/pageable/1.4.5.js
137
+ - vendor/assets/javascripts/js_stack/plugins/backbone/routefilter/0.2.0.js
136
138
  - vendor/assets/javascripts/js_stack/plugins/backbone/stickit/0.6.3.js
137
139
  - vendor/assets/javascripts/js_stack/plugins/backbone/stickit/0.7.0.js
138
140
  - vendor/assets/javascripts/js_stack/plugins/backbone/validation/0.8.1.js