Class: ActionDispatch::Journey::Router::Utils
Do not use. This class is for internal use only.
Relationships & Source Files | |
Namespace Children | |
Classes:
| |
Inherits: | Object |
Defined in: | actionpack/lib/action_dispatch/journey/router/utils.rb |
Constant Summary
Class Method Summary
- .escape_fragment(fragment)
- .escape_path(path)
- .escape_segment(segment)
-
.normalize_path(path)
Normalizes URI path.
-
.unescape_uri(uri)
Replaces any escaped sequences with their unescaped representations.
Class Method Details
.escape_fragment(fragment)
[ GitHub ]# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 91
def self.escape_fragment(fragment) ENCODER.escape_fragment(fragment.to_s) end
.escape_path(path)
[ GitHub ]# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 83
def self.escape_path(path) ENCODER.escape_path(path.to_s) end
.escape_segment(segment)
[ GitHub ]# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 87
def self.escape_segment(segment) ENCODER.escape_segment(segment.to_s) end
.normalize_path(path)
Normalizes URI path.
Strips off trailing slash and ensures there is a leading slash. Also converts downcase URL encoded string to uppercase.
normalize_path("/foo") # => "/foo"
normalize_path("/foo/") # => "/foo"
normalize_path("foo") # => "/foo"
normalize_path("") # => "/"
normalize_path("/%ab") # => "/%AB"
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 19
def self.normalize_path(path) path ||= "" encoding = path.encoding path = +"/#{path}" path.squeeze!("/") unless path == "/" path.delete_suffix!("/") path.gsub!(/(%[a-f0-9]{2})/) { $1.upcase } end path.force_encoding(encoding) end
.unescape_uri(uri)
Replaces any escaped sequences with their unescaped representations.
uri = "/topics?title=Ruby%20on%20Rails"
unescape_uri(uri) #=> "/topics?title=Ruby on Rails"
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 99
def self.unescape_uri(uri) ENCODER.unescape_uri(uri) end