Skip to content

Commit 78e6012

Browse files
committed
Clean up code and ES6 styles
1 parent 17b12de commit 78e6012

File tree

1 file changed

+24
-26
lines changed

1 file changed

+24
-26
lines changed

src/backbone.eventrouter.js

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ import _ from 'underscore';
22
import Backbone from 'backbone';
33
import Radio from 'backbone.radio'; // eslint-disable-line
44

5+
// https://github.com/jashkenas/backbone/blob/1.2.1/backbone.js#L1425
6+
const namedParamRegex = /(\(\?)?:\w+/;
7+
58
/**
69
* Backbone.Router coupled with a Backbone.Radio Channel.
710
*
@@ -18,7 +21,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
1821
* @param {Boolean} [options.channelName]
1922
* @param {Boolean} [options.routeTriggers]
2023
*/
21-
constructor: function(options) {
24+
constructor(options) {
2225
_.extend(this, _.pick(options, ['channelName', 'routeTriggers']));
2326

2427
this._ch = Backbone.Radio.channel(_.result(this, 'channelName'));
@@ -48,7 +51,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
4851
* @memberOf EventRouter
4952
* @returns {Backbone.Radio.Channel}
5053
*/
51-
getChannel: function() {
54+
getChannel() {
5255
return this._ch;
5356
},
5457

@@ -59,8 +62,8 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
5962
* @method _initRoutes
6063
* @memberOf EventRouter
6164
*/
62-
_initRoutes: function() {
63-
this._routeTriggers = _.result(this, 'routeTriggers') || {};
65+
_initRoutes() {
66+
this._routeTriggers = _.result(this, 'routeTriggers', {});
6467

6568
_.each(this._routeTriggers, this._addRouteTrigger, this);
6669
},
@@ -75,7 +78,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
7578
* @param {String} event - Event string to trigger on route
7679
* @memberOf EventRouter
7780
*/
78-
_addRouteTrigger: function(routes, event) {
81+
_addRouteTrigger(routes, event) {
7982
// handle any route as an array by default for the _.each
8083
routes = _.isArray(routes) ? routes : [routes];
8184

@@ -95,7 +98,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
9598
* @memberOf EventRouter
9699
* @returns {EventRouter}
97100
*/
98-
addRouteTrigger: function(routes, event) {
101+
addRouteTrigger(routes, event) {
99102
this._routeTriggers[event] = routes;
100103
this._addRouteTrigger(routes, event);
101104

@@ -118,13 +121,11 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
118121
* @memberOf EventRouter
119122
* @returns {EventRouter}
120123
*/
121-
route: function(route, name, callback) {
122-
if(_.isFunction(name)) {
123-
callback = name;
124-
name = '';
125-
}
126-
if(!callback) {
127-
callback = this[name];
124+
route(route, name, callback) {
125+
const bbRoute = Backbone.Router.prototype.route;
126+
127+
if(_.isFunction(name) || !callback) {
128+
return bbRoute.call(this, route, name, callback);
128129
}
129130

130131
const wrappedCallback = _.bind(function() {
@@ -139,7 +140,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
139140
this._clearRouteTrigger();
140141
}, this);
141142

142-
return Backbone.Router.prototype.route.call(this, route, name, wrappedCallback);
143+
return bbRoute.call(this, route, name, wrappedCallback);
143144
},
144145

145146
/**
@@ -150,7 +151,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
150151
* @param {Array} args - Array of route name and route arguments
151152
* @memberOf EventRouter
152153
*/
153-
_storeRouteTrigger: function(args) {
154+
_storeRouteTrigger(args) {
154155
this._routeArgs = this._routeArgs || [];
155156
this._routeArgs.push(args);
156157
},
@@ -164,7 +165,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
164165
* @memberOf EventRouter
165166
* @returns {Array}
166167
*/
167-
_getCurrentRouteTrigger: function() {
168+
_getCurrentRouteTrigger() {
168169
return _.last(this._routeArgs) || [];
169170
},
170171

@@ -175,7 +176,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
175176
* @method _clearRouteTrigger
176177
* @memberOf EventRouter
177178
*/
178-
_clearRouteTrigger: function() {
179+
_clearRouteTrigger() {
179180
this._routeArgs.pop();
180181
},
181182

@@ -188,7 +189,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
188189
* @memberOf EventRouter
189190
* @returns {Boolean}
190191
*/
191-
_isTriggeredFromRoute: function() {
192+
_isTriggeredFromRoute() {
192193
const currentRoute = this._getCurrentRouteTrigger();
193194

194195
if(arguments.length !== currentRoute.length) {
@@ -210,7 +211,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
210211
* @memberOf EventRouter
211212
* @returns {EventRouter}
212213
*/
213-
navigateFromEvent: function(event) {
214+
navigateFromEvent(event) {
214215
const route = this.getDefaultRoute(event);
215216

216217
// if no matching route exists do nothing
@@ -241,7 +242,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
241242
* @memberOf EventRouter
242243
* @returns {String}
243244
*/
244-
getDefaultRoute: function(event) {
245+
getDefaultRoute(event) {
245246
const routes = this._routeTriggers[event];
246247

247248
return _.isArray(routes) ? routes[0] : routes;
@@ -257,11 +258,8 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
257258
* @memberOf EventRouter
258259
* @returns {String}
259260
*/
260-
_replaceParam: function(route, arg) {
261-
// https://github.com/jashkenas/backbone/blob/1.2.1/backbone.js#L1425
262-
const namedParam = /(\(\?)?:\w+/;
263-
264-
return route.replace(namedParam, arg);
261+
_replaceParam(route, arg) {
262+
return route.replace(namedParamRegex, arg);
265263
},
266264

267265
/**
@@ -275,7 +273,7 @@ const EventRouter = Backbone.EventRouter = Backbone.Router.extend({
275273
* @memberOf EventRouter
276274
* @returns {String}
277275
*/
278-
translateRoute: function(route, eventArgs) {
276+
translateRoute(route, eventArgs) {
279277
return _.reduce(eventArgs, this._replaceParam, route);
280278
}
281279
});

0 commit comments

Comments
 (0)