123456789_123456789_123456789_123456789_123456789_

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

Class Method Details

.escape_fragment(fragment)

[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 90

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 82

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 86

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"
[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 17

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"
[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/journey/router/utils.rb', line 98

def self.unescape_uri(uri)
  ENCODER.unescape_uri(uri)
end