Class: Journey::Router::Utils

Inherits:
Object
  • Object
show all
Defined in:
lib/journey/router/utils.rb

Defined Under Namespace

Modules: UriEscape

Constant Summary collapse

Parser =
URI.const_defined?(:Parser) ? URI::Parser.new : URI

Class Method Summary collapse

Class Method Details

.escape_fragment(fragment) ⇒ Object



48
49
50
# File 'lib/journey/router/utils.rb', line 48

def self.escape_fragment(fragment)
  Parser.escape(fragment.to_s, UriEscape::UNSAFE_FRAGMENT)
end

.escape_path(path) ⇒ Object



44
45
46
# File 'lib/journey/router/utils.rb', line 44

def self.escape_path(path)
  Parser.escape(path.to_s, UriEscape::UNSAFE_SEGMENT)
end

.normalize_path(path) ⇒ Object

Normalizes URI path.

Strips off trailing slash and ensures there is a leading slash.

normalize_path("/foo")  # => "/foo"
normalize_path("/foo/") # => "/foo"
normalize_path("foo")   # => "/foo"
normalize_path("")      # => "/"


14
15
16
17
18
19
20
# File 'lib/journey/router/utils.rb', line 14

def self.normalize_path(path)
  path = "/#{path}"
  path.squeeze!('/')
  path.sub!(%r{/+\Z}, '')
  path = '/' if path == ''
  path
end

.unescape_uri(uri) ⇒ Object



52
53
54
# File 'lib/journey/router/utils.rb', line 52

def self.unescape_uri(uri)
  Parser.unescape(uri)
end