Skip to content

Commit

Permalink
Merge pull request #42 from swipely/add_rewrite_route_to
Browse files Browse the repository at this point in the history
Add Aviator.rewriteRouteTo
  • Loading branch information
barnabyc committed Dec 6, 2013
2 parents 4a521ff + ad1eb87 commit 2a8dfff
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 0 deletions.
18 changes: 18 additions & 0 deletions aviator.js
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,24 @@ window.Aviator = {
**/
refresh: function () {
this._navigator.refresh();
},

/**
@method rewriteRouteTo
**/
rewriteRouteTo: function (newRoute) {
var target = {
rewrite: function (request) {
Aviator.navigate(newRoute, {
namedParams: request.namedParams
});
}
};

return {
target: target,
'/': 'rewrite'
};
}

};
Expand Down
24 changes: 24 additions & 0 deletions spec/aviator_spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,4 +116,28 @@ describe('Aviator', function () {
});
});

describe('.rewriteRouteTo', function () {
var target;

beforeEach(function () {
target = subject.rewriteRouteTo('/foo/bar').target;
});

describe('the returned route target action', function () {
beforeEach(function () {
spyOn( Aviator, 'navigate' );
});

it('calls Aviator.navigate with the given route', function () {
target.rewrite({ namedParams: { baz: 'boo' } });

expect( Aviator.navigate ).toHaveBeenCalledWith(
'/foo/bar',
{ namedParams: { baz: 'boo' } }
);

});
});
});

});
20 changes: 20 additions & 0 deletions src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,26 @@ window.Aviator = {
**/
refresh: function () {
this._navigator.refresh();
},

/**
@method rewriteRouteTo
@param {String} newRoute
@return {Object}
**/
rewriteRouteTo: function (newRoute) {
var target = {
rewrite: function (request) {
Aviator.navigate(newRoute, {
namedParams: request.namedParams
});
}
};

return {
target: target,
'/': 'rewrite'
};
}

};

0 comments on commit 2a8dfff

Please sign in to comment.