Module: URI::Schemes
Do not use. This module is for internal use only.
Relationships & Source Files | |
Defined in: | lib/uri/common.rb |
Constant Summary
-
EscapedChars =
# File 'lib/uri/common.rb', line 97"\u01C0\u01C1\u01C2"
-
ReservedChars =
# File 'lib/uri/common.rb', line 96".+-"
Class Method Summary
-
.escape(name)
Use Lo category chars as escaped chars for TruffleRuby, which does not allow Symbol categories as identifiers.
- .find(name)
- .list
- .register(name, klass)
- .unescape(name)
Class Method Details
.escape(name)
Use Lo category chars as escaped chars for TruffleRuby, which does not allow Symbol categories as identifiers.
# 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