Skip to content

Commit 954cc15

Browse files
authored
Merge branch 'master' into instance_to_s_delegation
2 parents 3e46a25 + ea45bc1 commit 954cc15

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
* [#2577](https://github.com/ruby-grape/grape/pull/2577): Deprecate `return` in endpoint execution - [@ericproulx](https://github.com/ericproulx).
99
* [#2580](https://github.com/ruby-grape/grape/pull/2580): Refactor endpoint helpers and error middleware integration - [@ericproulx](https://github.com/ericproulx).
1010
* [#2581](https://github.com/ruby-grape/grape/pull/2581): Delegate `to_s` in Grape::API::Instance - [@ericproulx](https://github.com/ericproulx).
11+
* [#2582](https://github.com/ruby-grape/grape/pull/2582): Fix leaky slash when normalizing - [@ericproulx](https://github.com/ericproulx).
1112
* Your contribution here.
1213

1314
#### Fixes

lib/grape/router.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ class Router
1212
# normalize_path("/%ab") # => "/%AB"
1313
# https://github.com/rails/rails/blob/00cc4ff0259c0185fe08baadaa40e63ea2534f6e/actionpack/lib/action_dispatch/journey/router/utils.rb#L19
1414
def self.normalize_path(path)
15-
return +'/' unless path
15+
return '/' unless path
16+
return path if path == '/'
1617

1718
# Fast path for the overwhelming majority of paths that don't need to be normalized
18-
return path.dup if path == '/' || (path.start_with?('/') && !(path.end_with?('/') || path.match?(%r{%|//})))
19+
return path.dup if path.start_with?('/') && !(path.end_with?('/') || path.match?(%r{%|//}))
1920

2021
# Slow path
2122
encoding = path.encoding

0 commit comments

Comments
 (0)