Skip to content

Commit 668773c

Browse files
committed
[fixed] transitioning to paths with .
fixes #297
1 parent ec2d7a9 commit 668773c

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

modules/utils/Path.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,16 @@ function encodeURLPath(path) {
1414
return String(path).split('/').map(encodeURL).join('/');
1515
}
1616

17-
var paramMatcher = /:([a-zA-Z_$][a-zA-Z0-9_$]*)|[*.()\[\]\\+|{}^$]/g;
17+
var paramCompileMatcher = /:([a-zA-Z_$][a-zA-Z0-9_$]*)|[*.()\[\]\\+|{}^$]/g;
18+
var paramInjectMatcher = /:([a-zA-Z_$][a-zA-Z0-9_$]*)|[*]/g;
1819
var queryMatcher = /\?(.+)/;
1920

2021
var _compiledPatterns = {};
2122

2223
function compilePattern(pattern) {
2324
if (!(pattern in _compiledPatterns)) {
2425
var paramNames = [];
25-
var source = pattern.replace(paramMatcher, function (match, paramName) {
26+
var source = pattern.replace(paramCompileMatcher, function (match, paramName) {
2627
if (paramName) {
2728
paramNames.push(paramName);
2829
return '([^/?#]+)';
@@ -82,7 +83,7 @@ var Path = {
8283

8384
var splatIndex = 0;
8485

85-
return pattern.replace(paramMatcher, function (match, paramName) {
86+
return pattern.replace(paramInjectMatcher, function (match, paramName) {
8687
paramName = paramName || 'splat';
8788

8889
invariant(

modules/utils/__tests__/Path-test.js

+6
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,12 @@ describe('Path.injectParams', function () {
212212
}).toThrow(Error);
213213
});
214214
});
215+
216+
describe('when a pattern has dots', function() {
217+
it('returns the correct path', function() {
218+
expect(Path.injectParams('/foo.bar.baz')).toEqual('/foo.bar.baz');
219+
});
220+
});
215221
});
216222

217223
describe('Path.extractQuery', function () {

0 commit comments

Comments
 (0)