123456789_123456789_123456789_123456789_123456789_

Module: URI::Schemes

Do not use. This module is for internal use only.
Relationships & Source Files
Defined in: lib/uri/common.rb

Constant Summary

Class Method Summary

Class Method Details

.escape(name)

Use Lo category chars as escaped chars for TruffleRuby, which does not allow Symbol categories as identifiers.

[ GitHub ]

  
# File 'lib/uri/common.rb', line 101

def escape(name)
  unless name and name.ascii_only?
    return nil
  end
  name.upcase.tr(ReservedChars, EscapedChars)
end

.find(name)

[ GitHub ]

  
# File 'lib/uri/common.rb', line 112

def find(name)
  const_get(name, false) if name and const_defined?(name, false)
end

.list

[ GitHub ]

  
# File 'lib/uri/common.rb', line 123

def list
  constants.map { |name|
    [unescape(name.to_s), const_get(name)]
  }.to_h
end

.register(name, klass)

[ GitHub ]

  
# File 'lib/uri/common.rb', line 116

def register(name, klass)
  unless scheme = escape(name)
    raise ArgumentError, "invalid character as scheme - #{name}"
  end
  const_set(scheme, klass)
end

.unescape(name)

[ GitHub ]

  
# File 'lib/uri/common.rb', line 108

def unescape(name)
  name.tr(EscapedChars, ReservedChars).encode(Encoding::US_ASCII).upcase
end