RFC2396 § 3.1 states that the grammar for a URI scheme is:
scheme = alpha *( alpha | digit | "+" | "-" | "." )
whereas .register_scheme uses const_set and the grammar of Ruby constants is inconsistent with the grammar for a URI scheme:
def self.register_scheme(scheme, klass)
Schemes.const_set(scheme.to_s.upcase, klass)
end
How much trouble would it be to switch to a Hash keyed by Symbols, so that it's possible to register (compliant) URI schemes with hyphens, + signs, dots?